diff --git a/.gitignore b/.gitignore index 0c5f5b57c55..db6fad71d99 100644 --- a/.gitignore +++ b/.gitignore @@ -138,3 +138,5 @@ package-lock.json *.temp_check /docker/*.tar.xz +/scripts/patrons.json +/scripts/translators.json diff --git a/.rubocop.yml b/.rubocop.yml index 3daeb77055e..0b535a000e6 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,4 +1,4 @@ -Metrics/LineLength: +Layout/LineLength: Max: 95 Metrics/MethodLength: diff --git a/Thrive.csproj b/Thrive.csproj index 39b5598710f..09f396a601b 100644 --- a/Thrive.csproj +++ b/Thrive.csproj @@ -21,6 +21,7 @@ + @@ -88,6 +89,7 @@ + @@ -339,6 +341,7 @@ + diff --git a/Thrive.sln.DotSettings b/Thrive.sln.DotSettings index 54e7b38d870..4b338cb132d 100644 --- a/Thrive.sln.DotSettings +++ b/Thrive.sln.DotSettings @@ -461,10 +461,13 @@ JSON MP MSAA + OFL + GPL OS SFX UI UV + VIP False <Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="" Suffix="" Style="AA_BB" /></Policy> @@ -497,6 +500,7 @@ True True True + True True True True @@ -531,6 +535,7 @@ True True True + True True True True @@ -559,6 +564,7 @@ True True True + True True True True diff --git a/assets/README.md b/assets/README.txt similarity index 93% rename from assets/README.md rename to assets/README.txt index 86feb8512b6..c869e8c5a61 100644 --- a/assets/README.md +++ b/assets/README.txt @@ -1,5 +1,5 @@ -License Info -============ +Asset License Info +================== With some exceptions, all assets in the assets folder and subfolders use a Creative Commons license as defined diff --git a/export_presets.cfg b/export_presets.cfg index 066cc010b8b..430b5902e0b 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -6,7 +6,7 @@ runnable=true custom_features="" export_filter="all_resources" include_filter="*.json, *.txt" -exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*" +exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*, scripts/*" export_path="builds/Thrive.x86_64" script_export_mode=1 script_encryption_key="" @@ -31,7 +31,7 @@ runnable=true custom_features="" export_filter="all_resources" include_filter="*.json, *.txt" -exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*" +exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*, scripts/*" export_path="builds/Thrive.exe" script_export_mode=1 script_encryption_key="" @@ -72,7 +72,7 @@ runnable=false custom_features="" export_filter="all_resources" include_filter="*.json, *.txt" -exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*" +exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*, scripts/*" export_path="builds/Thrive.exe" script_export_mode=1 script_encryption_key="" @@ -113,7 +113,7 @@ runnable=true custom_features="" export_filter="all_resources" include_filter="*.json, *.txt" -exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*" +exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*, scripts/*" export_path="builds/Thrive.zip" script_export_mode=1 script_encryption_key="" diff --git a/locale/bg.po b/locale/bg.po index a31dcd115c1..3c6365f43fe 100644 --- a/locale/bg.po +++ b/locale/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-09-09 21:04+1000\n" +"POT-Creation-Date: 2021-09-17 17:10+0300\n" "PO-Revision-Date: 2021-09-12 07:51+0000\n" "Last-Translator: Georgi Georgiev (Жоро) \n" "Language-Team: Bulgarian \n" "Language-Team: Catalan \n" "Language-Team: Czech \n" "Language-Team: German \n" @@ -1372,61 +1372,61 @@ msgstr "Art by {0}" msgid "CLOSE" msgstr "Close" -#: ../src/general/MainMenu.cs:359 +#: ../src/general/MainMenu.cs:394 msgid "OK" msgstr "OK" -#: ../src/general/MainMenu.cs:360 +#: ../src/general/MainMenu.cs:395 msgid "Cancel" msgstr "Cancel" -#: ../src/general/MainMenu.tscn:146 +#: ../src/general/MainMenu.tscn:149 msgid "NEW_GAME" msgstr "New Game" -#: ../src/general/MainMenu.tscn:159 ../src/general/PauseMenu.tscn:72 +#: ../src/general/MainMenu.tscn:162 ../src/general/PauseMenu.tscn:72 msgid "LOAD_GAME" msgstr "Load Game" -#: ../src/general/MainMenu.tscn:170 ../src/general/PauseMenu.tscn:94 +#: ../src/general/MainMenu.tscn:173 ../src/general/PauseMenu.tscn:94 msgid "OPTIONS" msgstr "Options" -#: ../src/general/MainMenu.tscn:181 +#: ../src/general/MainMenu.tscn:184 msgid "TOOLS" msgstr "Tools" -#: ../src/general/MainMenu.tscn:192 +#: ../src/general/MainMenu.tscn:195 msgid "VIEW_SOURCE_CODE" msgstr "View Source Code" -#: ../src/general/MainMenu.tscn:204 +#: ../src/general/MainMenu.tscn:207 msgid "EXTRAS" msgstr "Extras" -#: ../src/general/MainMenu.tscn:216 +#: ../src/general/MainMenu.tscn:218 msgid "CREDITS" msgstr "Credits" -#: ../src/general/MainMenu.tscn:227 +#: ../src/general/MainMenu.tscn:229 msgid "QUIT" msgstr "Quit" -#: ../src/general/MainMenu.tscn:249 +#: ../src/general/MainMenu.tscn:251 msgid "MICROBE_FREEBUILD_EDITOR" msgstr "Microbe Freebuild Editor" -#: ../src/general/MainMenu.tscn:309 ../src/general/OptionsMenu.tscn:1173 -#: ../src/general/PauseMenu.tscn:134 ../src/saving/NewSaveMenu.tscn:108 -#: ../src/saving/SaveManagerGUI.tscn:120 +#: ../src/general/MainMenu.tscn:311 ../src/general/MainMenu.tscn:345 +#: ../src/general/OptionsMenu.tscn:1173 ../src/general/PauseMenu.tscn:134 +#: ../src/saving/NewSaveMenu.tscn:108 ../src/saving/SaveManagerGUI.tscn:120 msgid "BACK" msgstr "Back" -#: ../src/general/MainMenu.tscn:349 +#: ../src/general/MainMenu.tscn:382 msgid "GLES2_MODE_WARNING" msgstr "GLES2 Mode Warning" -#: ../src/general/MainMenu.tscn:362 +#: ../src/general/MainMenu.tscn:395 msgid "GLES2_MODE_WARNING_TEXT" msgstr "" "You are running Thrive with GLES2. This is severely untested and is likely " @@ -1768,6 +1768,143 @@ msgstr "@" msgid "PERCENTAGE_VALUE" msgstr "{0}%" +#: ../src/gui_common/CreditsScroll.cs:228 +msgid "LEAD_DEVELOPERS" +msgstr "Lead Developers" + +#: ../src/gui_common/CreditsScroll.cs:234 +msgid "LEAD_PROGRAMMER" +msgstr "Lead Programmer" + +#: ../src/gui_common/CreditsScroll.cs:235 +msgid "LEAD_PROGRAMMERS" +msgstr "Lead Programmers" + +#: ../src/gui_common/CreditsScroll.cs:240 +msgid "LEAD_THEORIST" +msgstr "Lead Theorist" + +#: ../src/gui_common/CreditsScroll.cs:241 +msgid "LEAD_THEORISTS" +msgstr "Lead Theorists" + +#: ../src/gui_common/CreditsScroll.cs:246 +msgid "LEAD_ARTIST" +msgstr "Lead Artist" + +#: ../src/gui_common/CreditsScroll.cs:247 +msgid "LEAD_ARTISTS" +msgstr "Lead Artists" + +#: ../src/gui_common/CreditsScroll.cs:252 +msgid "SOUND_TEAM_LEAD" +msgstr "Sound Team Lead" + +#: ../src/gui_common/CreditsScroll.cs:253 +msgid "SOUND_TEAM_LEADS" +msgstr "Sound Team Leads" + +#: ../src/gui_common/CreditsScroll.cs:258 +msgid "LEAD_OUTREACH_PERSON" +msgstr "Lead Outreach Person" + +#: ../src/gui_common/CreditsScroll.cs:259 +msgid "LEAD_OUTREACH_PEOPLE" +msgstr "Lead Outreach People" + +#: ../src/gui_common/CreditsScroll.cs:264 +msgid "LEAD_GAME_DESIGNER" +msgstr "Lead Game Designer" + +#: ../src/gui_common/CreditsScroll.cs:265 +msgid "LEAD_GAME_DESIGNERS" +msgstr "Lead Game Designers" + +#: ../src/gui_common/CreditsScroll.cs:270 +msgid "LEAD_TESTER" +msgstr "Lead Tester" + +#: ../src/gui_common/CreditsScroll.cs:271 +msgid "LEAD_TESTERS" +msgstr "Lead Testers" + +#: ../src/gui_common/CreditsScroll.cs:276 +msgid "LEAD_PROJECT_MANAGER" +msgstr "Lead Project Manager" + +#: ../src/gui_common/CreditsScroll.cs:277 +msgid "LEAD_PROJECT_MANAGERS" +msgstr "Lead Project Managers" + +#: ../src/gui_common/CreditsScroll.cs:284 +msgid "CURRENT_DEVELOPERS" +msgstr "Current Developers" + +#: ../src/gui_common/CreditsScroll.cs:300 +msgid "PAST_DEVELOPERS" +msgstr "Past Developers" + +#: ../src/gui_common/CreditsScroll.cs:316 +msgid "OUTSIDE_CONTRIBUTORS" +msgstr "Outside Contributors" + +#: ../src/gui_common/CreditsScroll.cs:319 +msgid "YOU_CAN_MAKE_PULL_REQUEST" +msgstr "" +"Thrive is an open source project. \n" +"You can contribute a pull request without applying to the team." + +#: ../src/gui_common/CreditsScroll.cs:334 +msgid "PATRONS" +msgstr "Patrons" + +#: ../src/gui_common/CreditsScroll.cs:338 +msgid "YOU_CAN_SUPPORT_THRIVE_ON_PATREON" +msgstr "You can support Thrive on Patreon to support future development" + +#: ../src/gui_common/CreditsScroll.cs:341 +msgid "VIP_PATRONS" +msgstr "VIP Supporters" + +#: ../src/gui_common/CreditsScroll.cs:342 +msgid "DEV_BUILD_PATRONS" +msgstr "Devbuilds Supporters" + +#: ../src/gui_common/CreditsScroll.cs:344 +msgid "SUPPORTER_PATRONS" +msgstr "Supporters" + +#: ../src/gui_common/CreditsScroll.cs:354 +msgid "DONATIONS" +msgstr "Donations" + +#: ../src/gui_common/CreditsScroll.cs:377 +msgid "TRANSLATORS" +msgstr "Translators" + +#: ../src/gui_common/CreditsScroll.cs:391 +msgid "USED_LIBRARIES_LICENSES" +msgstr "Licenses And Used Libraries" + +#: ../src/gui_common/CreditsScroll.cs:485 +msgid "THANKS_FOR_PLAYING" +msgstr "" +"Thank you for playing!\n" +"\n" +"If you enjoyed the game, please tell your friends about us." + +#: ../src/gui_common/CreditsScroll.tscn:45 +msgid "BY_REVOLUTIONARY_GAMES" +msgstr "By Revolutionary Games Studio" + +#: ../src/gui_common/CreditsScroll.tscn:52 +msgid "DEVELOPMENT_SUPPORTED_BY" +msgstr "Development Supported By Revolutionary Games Studio ry" + +#: ../src/gui_common/CreditsScroll.tscn:60 +msgid "DEVELOPERS" +msgstr "Developers" + #: ../src/gui_common/QuickLoadHandler.tscn:18 msgid "SAVE_HAS_DIFFERENT_VERSION" msgstr "Save has different version" @@ -3460,9 +3597,6 @@ msgstr "" #~ msgid "PARENRIGHT" #~ msgstr ")" -#~ msgid "ASTERISK" -#~ msgstr "*" - #~ msgid "PLUS" #~ msgstr "+" diff --git a/locale/eo.po b/locale/eo.po index 2ea20535568..b4149bb4289 100644 --- a/locale/eo.po +++ b/locale/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-09-10 07:23-0400\n" +"POT-Creation-Date: 2021-09-17 17:10+0300\n" "PO-Revision-Date: 2021-04-02 10:19+0000\n" "Last-Translator: Fredy Ivan Sucari Callohuanca \n" "Language-Team: Esperanto \n" "Language-Team: Spanish \n" "Language-Team: Spanish (Argentina) \n" "Language-Team: Estonian \n" @@ -1328,61 +1328,61 @@ msgstr "Taidetta, jonka tekijä on {0}" msgid "CLOSE" msgstr "Sulje" -#: ../src/general/MainMenu.cs:359 +#: ../src/general/MainMenu.cs:394 msgid "OK" msgstr "OK" -#: ../src/general/MainMenu.cs:360 +#: ../src/general/MainMenu.cs:395 msgid "Cancel" msgstr "Peruuta" -#: ../src/general/MainMenu.tscn:146 +#: ../src/general/MainMenu.tscn:149 msgid "NEW_GAME" msgstr "Uusi Peli" -#: ../src/general/MainMenu.tscn:159 ../src/general/PauseMenu.tscn:72 +#: ../src/general/MainMenu.tscn:162 ../src/general/PauseMenu.tscn:72 msgid "LOAD_GAME" msgstr "Lataa Peli" -#: ../src/general/MainMenu.tscn:170 ../src/general/PauseMenu.tscn:94 +#: ../src/general/MainMenu.tscn:173 ../src/general/PauseMenu.tscn:94 msgid "OPTIONS" msgstr "Asetukset" -#: ../src/general/MainMenu.tscn:181 +#: ../src/general/MainMenu.tscn:184 msgid "TOOLS" msgstr "Työkalut" -#: ../src/general/MainMenu.tscn:192 +#: ../src/general/MainMenu.tscn:195 msgid "VIEW_SOURCE_CODE" msgstr "Katsele lähdekoodia" -#: ../src/general/MainMenu.tscn:204 +#: ../src/general/MainMenu.tscn:207 msgid "EXTRAS" msgstr "Ekstrat" -#: ../src/general/MainMenu.tscn:216 +#: ../src/general/MainMenu.tscn:218 msgid "CREDITS" msgstr "Tekijät" -#: ../src/general/MainMenu.tscn:227 +#: ../src/general/MainMenu.tscn:229 msgid "QUIT" msgstr "Lopeta" -#: ../src/general/MainMenu.tscn:249 +#: ../src/general/MainMenu.tscn:251 msgid "MICROBE_FREEBUILD_EDITOR" msgstr "Mikrobien vapaa rakentelu" -#: ../src/general/MainMenu.tscn:309 ../src/general/OptionsMenu.tscn:1173 -#: ../src/general/PauseMenu.tscn:134 ../src/saving/NewSaveMenu.tscn:108 -#: ../src/saving/SaveManagerGUI.tscn:120 +#: ../src/general/MainMenu.tscn:311 ../src/general/MainMenu.tscn:345 +#: ../src/general/OptionsMenu.tscn:1173 ../src/general/PauseMenu.tscn:134 +#: ../src/saving/NewSaveMenu.tscn:108 ../src/saving/SaveManagerGUI.tscn:120 msgid "BACK" msgstr "Takaisin" -#: ../src/general/MainMenu.tscn:349 +#: ../src/general/MainMenu.tscn:382 msgid "GLES2_MODE_WARNING" msgstr "GLES2-moodi Varoitus" -#: ../src/general/MainMenu.tscn:362 +#: ../src/general/MainMenu.tscn:395 msgid "GLES2_MODE_WARNING_TEXT" msgstr "" @@ -1727,6 +1727,140 @@ msgstr "" msgid "PERCENTAGE_VALUE" msgstr "{0}%" +#: ../src/gui_common/CreditsScroll.cs:228 +msgid "LEAD_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:234 +msgid "LEAD_PROGRAMMER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:235 +msgid "LEAD_PROGRAMMERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:240 +msgid "LEAD_THEORIST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:241 +msgid "LEAD_THEORISTS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:246 +msgid "LEAD_ARTIST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:247 +msgid "LEAD_ARTISTS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:252 +msgid "SOUND_TEAM_LEAD" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:253 +msgid "SOUND_TEAM_LEADS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:258 +msgid "LEAD_OUTREACH_PERSON" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:259 +msgid "LEAD_OUTREACH_PEOPLE" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:264 +msgid "LEAD_GAME_DESIGNER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:265 +msgid "LEAD_GAME_DESIGNERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:270 +msgid "LEAD_TESTER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:271 +msgid "LEAD_TESTERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:276 +msgid "LEAD_PROJECT_MANAGER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:277 +msgid "LEAD_PROJECT_MANAGERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:284 +msgid "CURRENT_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:300 +msgid "PAST_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:316 +msgid "OUTSIDE_CONTRIBUTORS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:319 +msgid "YOU_CAN_MAKE_PULL_REQUEST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:334 +msgid "PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:338 +msgid "YOU_CAN_SUPPORT_THRIVE_ON_PATREON" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:341 +msgid "VIP_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:342 +msgid "DEV_BUILD_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:344 +msgid "SUPPORTER_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:354 +#, fuzzy +msgid "DONATIONS" +msgstr "Asetukset" + +#: ../src/gui_common/CreditsScroll.cs:377 +#, fuzzy +msgid "TRANSLATORS" +msgstr "Auta pelin kääntämisessä" + +#: ../src/gui_common/CreditsScroll.cs:391 +msgid "USED_LIBRARIES_LICENSES" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:485 +msgid "THANKS_FOR_PLAYING" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:45 +msgid "BY_REVOLUTIONARY_GAMES" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:52 +msgid "DEVELOPMENT_SUPPORTED_BY" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:60 +msgid "DEVELOPERS" +msgstr "" + #: ../src/gui_common/QuickLoadHandler.tscn:18 msgid "SAVE_HAS_DIFFERENT_VERSION" msgstr "Tallennus on pelin eri versiosta" diff --git a/locale/fr.po b/locale/fr.po index b0129cbf0c8..bcf5fe9ac30 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-09-10 07:23-0400\n" +"POT-Creation-Date: 2021-09-17 17:10+0300\n" "PO-Revision-Date: 2021-09-06 00:51+0000\n" "Last-Translator: Felecarp \n" "Language-Team: French \n" "Language-Team: Hebrew 10 && " -"n % 10 == 0) ? 2 : 3));\n" +"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 " +"&& n % 10 == 0) ? 2 : 3));\n" "X-Generator: Weblate 4.7.2\n" "Generated-By: Babel 2.8.0\n" @@ -1354,61 +1354,61 @@ msgstr "ציור מאת {0}" msgid "CLOSE" msgstr "סגור" -#: ../src/general/MainMenu.cs:359 +#: ../src/general/MainMenu.cs:394 msgid "OK" msgstr "בסדר" -#: ../src/general/MainMenu.cs:360 +#: ../src/general/MainMenu.cs:395 msgid "Cancel" msgstr "ביטול" -#: ../src/general/MainMenu.tscn:146 +#: ../src/general/MainMenu.tscn:149 msgid "NEW_GAME" msgstr "משחק חדש" -#: ../src/general/MainMenu.tscn:159 ../src/general/PauseMenu.tscn:72 +#: ../src/general/MainMenu.tscn:162 ../src/general/PauseMenu.tscn:72 msgid "LOAD_GAME" msgstr "טען שמירה" -#: ../src/general/MainMenu.tscn:170 ../src/general/PauseMenu.tscn:94 +#: ../src/general/MainMenu.tscn:173 ../src/general/PauseMenu.tscn:94 msgid "OPTIONS" msgstr "אפשרויות" -#: ../src/general/MainMenu.tscn:181 +#: ../src/general/MainMenu.tscn:184 msgid "TOOLS" msgstr "כלים" -#: ../src/general/MainMenu.tscn:192 +#: ../src/general/MainMenu.tscn:195 msgid "VIEW_SOURCE_CODE" msgstr "צפה בקוד מקור" -#: ../src/general/MainMenu.tscn:204 +#: ../src/general/MainMenu.tscn:207 msgid "EXTRAS" msgstr "תוספות" -#: ../src/general/MainMenu.tscn:216 +#: ../src/general/MainMenu.tscn:218 msgid "CREDITS" msgstr "קרדיט" -#: ../src/general/MainMenu.tscn:227 +#: ../src/general/MainMenu.tscn:229 msgid "QUIT" msgstr "יציאה" -#: ../src/general/MainMenu.tscn:249 +#: ../src/general/MainMenu.tscn:251 msgid "MICROBE_FREEBUILD_EDITOR" msgstr "עורך ארגז חול המיקרובי" -#: ../src/general/MainMenu.tscn:309 ../src/general/OptionsMenu.tscn:1173 -#: ../src/general/PauseMenu.tscn:134 ../src/saving/NewSaveMenu.tscn:108 -#: ../src/saving/SaveManagerGUI.tscn:120 +#: ../src/general/MainMenu.tscn:311 ../src/general/MainMenu.tscn:345 +#: ../src/general/OptionsMenu.tscn:1173 ../src/general/PauseMenu.tscn:134 +#: ../src/saving/NewSaveMenu.tscn:108 ../src/saving/SaveManagerGUI.tscn:120 msgid "BACK" msgstr "חזור" -#: ../src/general/MainMenu.tscn:349 +#: ../src/general/MainMenu.tscn:382 msgid "GLES2_MODE_WARNING" msgstr "אזהרת GLES2" -#: ../src/general/MainMenu.tscn:362 +#: ../src/general/MainMenu.tscn:395 msgid "GLES2_MODE_WARNING_TEXT" msgstr "" "אתה מריץ את Thrive על GLES2. אופציה זו עדין לא נבדקה ועלולה לגרום לבעיות. " @@ -1749,6 +1749,140 @@ msgstr "@" msgid "PERCENTAGE_VALUE" msgstr "{0}%" +#: ../src/gui_common/CreditsScroll.cs:228 +msgid "LEAD_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:234 +msgid "LEAD_PROGRAMMER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:235 +msgid "LEAD_PROGRAMMERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:240 +msgid "LEAD_THEORIST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:241 +msgid "LEAD_THEORISTS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:246 +msgid "LEAD_ARTIST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:247 +msgid "LEAD_ARTISTS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:252 +msgid "SOUND_TEAM_LEAD" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:253 +msgid "SOUND_TEAM_LEADS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:258 +msgid "LEAD_OUTREACH_PERSON" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:259 +msgid "LEAD_OUTREACH_PEOPLE" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:264 +msgid "LEAD_GAME_DESIGNER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:265 +msgid "LEAD_GAME_DESIGNERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:270 +msgid "LEAD_TESTER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:271 +msgid "LEAD_TESTERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:276 +msgid "LEAD_PROJECT_MANAGER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:277 +msgid "LEAD_PROJECT_MANAGERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:284 +msgid "CURRENT_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:300 +msgid "PAST_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:316 +msgid "OUTSIDE_CONTRIBUTORS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:319 +msgid "YOU_CAN_MAKE_PULL_REQUEST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:334 +msgid "PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:338 +msgid "YOU_CAN_SUPPORT_THRIVE_ON_PATREON" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:341 +msgid "VIP_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:342 +msgid "DEV_BUILD_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:344 +msgid "SUPPORTER_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:354 +#, fuzzy +msgid "DONATIONS" +msgstr "אפשרויות" + +#: ../src/gui_common/CreditsScroll.cs:377 +#, fuzzy +msgid "TRANSLATORS" +msgstr "עזור לתרגם את המשחק" + +#: ../src/gui_common/CreditsScroll.cs:391 +msgid "USED_LIBRARIES_LICENSES" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:485 +msgid "THANKS_FOR_PLAYING" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:45 +msgid "BY_REVOLUTIONARY_GAMES" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:52 +msgid "DEVELOPMENT_SUPPORTED_BY" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:60 +msgid "DEVELOPERS" +msgstr "" + #: ../src/gui_common/QuickLoadHandler.tscn:18 msgid "SAVE_HAS_DIFFERENT_VERSION" msgstr "לשמירה יש גרסה שונה" diff --git a/locale/id.po b/locale/id.po index 2be28ad44a1..43b038b19ec 100644 --- a/locale/id.po +++ b/locale/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-09-10 07:23-0400\n" +"POT-Creation-Date: 2021-09-17 17:10+0300\n" "PO-Revision-Date: 2021-09-08 14:51+0000\n" "Last-Translator: Nozt \n" "Language-Team: Indonesian \n" "Language-Team: Italian \n" "Language-Team: Korean \n" "Language-Team: Latin \n" "Language-Team: Latvian \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.9.0\n" #: ../simulation_parameters/common/help_texts.json:6 #: ../simulation_parameters/common/help_texts.json:85 @@ -1198,61 +1198,61 @@ msgstr "" msgid "CLOSE" msgstr "" -#: ../src/general/MainMenu.cs:359 +#: ../src/general/MainMenu.cs:394 msgid "OK" msgstr "" -#: ../src/general/MainMenu.cs:360 +#: ../src/general/MainMenu.cs:395 msgid "Cancel" msgstr "" -#: ../src/general/MainMenu.tscn:146 +#: ../src/general/MainMenu.tscn:149 msgid "NEW_GAME" msgstr "" -#: ../src/general/MainMenu.tscn:159 ../src/general/PauseMenu.tscn:72 +#: ../src/general/MainMenu.tscn:162 ../src/general/PauseMenu.tscn:72 msgid "LOAD_GAME" msgstr "" -#: ../src/general/MainMenu.tscn:170 ../src/general/PauseMenu.tscn:94 +#: ../src/general/MainMenu.tscn:173 ../src/general/PauseMenu.tscn:94 msgid "OPTIONS" msgstr "" -#: ../src/general/MainMenu.tscn:181 +#: ../src/general/MainMenu.tscn:184 msgid "TOOLS" msgstr "" -#: ../src/general/MainMenu.tscn:192 +#: ../src/general/MainMenu.tscn:195 msgid "VIEW_SOURCE_CODE" msgstr "" -#: ../src/general/MainMenu.tscn:204 +#: ../src/general/MainMenu.tscn:207 msgid "EXTRAS" msgstr "" -#: ../src/general/MainMenu.tscn:216 +#: ../src/general/MainMenu.tscn:218 msgid "CREDITS" msgstr "" -#: ../src/general/MainMenu.tscn:227 +#: ../src/general/MainMenu.tscn:229 msgid "QUIT" msgstr "" -#: ../src/general/MainMenu.tscn:249 +#: ../src/general/MainMenu.tscn:251 msgid "MICROBE_FREEBUILD_EDITOR" msgstr "" -#: ../src/general/MainMenu.tscn:309 ../src/general/OptionsMenu.tscn:1173 -#: ../src/general/PauseMenu.tscn:134 ../src/saving/NewSaveMenu.tscn:108 -#: ../src/saving/SaveManagerGUI.tscn:120 +#: ../src/general/MainMenu.tscn:311 ../src/general/MainMenu.tscn:345 +#: ../src/general/OptionsMenu.tscn:1173 ../src/general/PauseMenu.tscn:134 +#: ../src/saving/NewSaveMenu.tscn:108 ../src/saving/SaveManagerGUI.tscn:120 msgid "BACK" msgstr "" -#: ../src/general/MainMenu.tscn:349 +#: ../src/general/MainMenu.tscn:382 msgid "GLES2_MODE_WARNING" msgstr "" -#: ../src/general/MainMenu.tscn:362 +#: ../src/general/MainMenu.tscn:395 msgid "GLES2_MODE_WARNING_TEXT" msgstr "" @@ -1586,6 +1586,138 @@ msgstr "" msgid "PERCENTAGE_VALUE" msgstr "" +#: ../src/gui_common/CreditsScroll.cs:228 +msgid "LEAD_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:234 +msgid "LEAD_PROGRAMMER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:235 +msgid "LEAD_PROGRAMMERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:240 +msgid "LEAD_THEORIST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:241 +msgid "LEAD_THEORISTS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:246 +msgid "LEAD_ARTIST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:247 +msgid "LEAD_ARTISTS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:252 +msgid "SOUND_TEAM_LEAD" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:253 +msgid "SOUND_TEAM_LEADS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:258 +msgid "LEAD_OUTREACH_PERSON" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:259 +msgid "LEAD_OUTREACH_PEOPLE" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:264 +msgid "LEAD_GAME_DESIGNER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:265 +msgid "LEAD_GAME_DESIGNERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:270 +msgid "LEAD_TESTER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:271 +msgid "LEAD_TESTERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:276 +msgid "LEAD_PROJECT_MANAGER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:277 +msgid "LEAD_PROJECT_MANAGERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:284 +msgid "CURRENT_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:300 +msgid "PAST_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:316 +msgid "OUTSIDE_CONTRIBUTORS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:319 +msgid "YOU_CAN_MAKE_PULL_REQUEST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:334 +msgid "PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:338 +msgid "YOU_CAN_SUPPORT_THRIVE_ON_PATREON" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:341 +msgid "VIP_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:342 +msgid "DEV_BUILD_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:344 +msgid "SUPPORTER_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:354 +msgid "DONATIONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:377 +msgid "TRANSLATORS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:391 +msgid "USED_LIBRARIES_LICENSES" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:485 +msgid "THANKS_FOR_PLAYING" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:45 +msgid "BY_REVOLUTIONARY_GAMES" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:52 +msgid "DEVELOPMENT_SUPPORTED_BY" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:60 +msgid "DEVELOPERS" +msgstr "" + #: ../src/gui_common/QuickLoadHandler.tscn:18 msgid "SAVE_HAS_DIFFERENT_VERSION" msgstr "" diff --git a/locale/nl.po b/locale/nl.po index de1078e693b..e7c794ff78b 100644 --- a/locale/nl.po +++ b/locale/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-09-10 07:23-0400\n" +"POT-Creation-Date: 2021-09-17 17:10+0300\n" "PO-Revision-Date: 2021-09-08 14:51+0000\n" "Last-Translator: Joah van der Maaden \n" "Language-Team: Dutch \n" "Language-Team: Dutch (Belgium) \n" "Language-Team: Polish \n" @@ -1367,61 +1367,61 @@ msgstr "Arte por {0}" msgid "CLOSE" msgstr "Fechar" -#: ../src/general/MainMenu.cs:359 +#: ../src/general/MainMenu.cs:394 msgid "OK" msgstr "OK" -#: ../src/general/MainMenu.cs:360 +#: ../src/general/MainMenu.cs:395 msgid "Cancel" msgstr "Cancelar" -#: ../src/general/MainMenu.tscn:146 +#: ../src/general/MainMenu.tscn:149 msgid "NEW_GAME" msgstr "Novo Jogo" -#: ../src/general/MainMenu.tscn:159 ../src/general/PauseMenu.tscn:72 +#: ../src/general/MainMenu.tscn:162 ../src/general/PauseMenu.tscn:72 msgid "LOAD_GAME" msgstr "Carregar Jogo" -#: ../src/general/MainMenu.tscn:170 ../src/general/PauseMenu.tscn:94 +#: ../src/general/MainMenu.tscn:173 ../src/general/PauseMenu.tscn:94 msgid "OPTIONS" msgstr "Opções" -#: ../src/general/MainMenu.tscn:181 +#: ../src/general/MainMenu.tscn:184 msgid "TOOLS" msgstr "Ferramentas" -#: ../src/general/MainMenu.tscn:192 +#: ../src/general/MainMenu.tscn:195 msgid "VIEW_SOURCE_CODE" msgstr "Ver código fonte" -#: ../src/general/MainMenu.tscn:204 +#: ../src/general/MainMenu.tscn:207 msgid "EXTRAS" msgstr "Extras" -#: ../src/general/MainMenu.tscn:216 +#: ../src/general/MainMenu.tscn:218 msgid "CREDITS" msgstr "Créditos" -#: ../src/general/MainMenu.tscn:227 +#: ../src/general/MainMenu.tscn:229 msgid "QUIT" msgstr "Sair" -#: ../src/general/MainMenu.tscn:249 +#: ../src/general/MainMenu.tscn:251 msgid "MICROBE_FREEBUILD_EDITOR" msgstr "Editor de Micróbio Livre" -#: ../src/general/MainMenu.tscn:309 ../src/general/OptionsMenu.tscn:1173 -#: ../src/general/PauseMenu.tscn:134 ../src/saving/NewSaveMenu.tscn:108 -#: ../src/saving/SaveManagerGUI.tscn:120 +#: ../src/general/MainMenu.tscn:311 ../src/general/MainMenu.tscn:345 +#: ../src/general/OptionsMenu.tscn:1173 ../src/general/PauseMenu.tscn:134 +#: ../src/saving/NewSaveMenu.tscn:108 ../src/saving/SaveManagerGUI.tscn:120 msgid "BACK" msgstr "Voltar" -#: ../src/general/MainMenu.tscn:349 +#: ../src/general/MainMenu.tscn:382 msgid "GLES2_MODE_WARNING" msgstr "Aviso do Modo GLES2" -#: ../src/general/MainMenu.tscn:362 +#: ../src/general/MainMenu.tscn:395 msgid "GLES2_MODE_WARNING_TEXT" msgstr "" "Você está usando Thrive usando GLES2, que não é testado e pode causar " @@ -1767,6 +1767,140 @@ msgstr "@" msgid "PERCENTAGE_VALUE" msgstr "{0}%" +#: ../src/gui_common/CreditsScroll.cs:228 +msgid "LEAD_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:234 +msgid "LEAD_PROGRAMMER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:235 +msgid "LEAD_PROGRAMMERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:240 +msgid "LEAD_THEORIST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:241 +msgid "LEAD_THEORISTS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:246 +msgid "LEAD_ARTIST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:247 +msgid "LEAD_ARTISTS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:252 +msgid "SOUND_TEAM_LEAD" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:253 +msgid "SOUND_TEAM_LEADS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:258 +msgid "LEAD_OUTREACH_PERSON" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:259 +msgid "LEAD_OUTREACH_PEOPLE" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:264 +msgid "LEAD_GAME_DESIGNER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:265 +msgid "LEAD_GAME_DESIGNERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:270 +msgid "LEAD_TESTER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:271 +msgid "LEAD_TESTERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:276 +msgid "LEAD_PROJECT_MANAGER" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:277 +msgid "LEAD_PROJECT_MANAGERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:284 +msgid "CURRENT_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:300 +msgid "PAST_DEVELOPERS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:316 +msgid "OUTSIDE_CONTRIBUTORS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:319 +msgid "YOU_CAN_MAKE_PULL_REQUEST" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:334 +msgid "PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:338 +msgid "YOU_CAN_SUPPORT_THRIVE_ON_PATREON" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:341 +msgid "VIP_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:342 +msgid "DEV_BUILD_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:344 +msgid "SUPPORTER_PATRONS" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:354 +#, fuzzy +msgid "DONATIONS" +msgstr "Opções" + +#: ../src/gui_common/CreditsScroll.cs:377 +#, fuzzy +msgid "TRANSLATORS" +msgstr "Ajude a traduzir o jogo" + +#: ../src/gui_common/CreditsScroll.cs:391 +msgid "USED_LIBRARIES_LICENSES" +msgstr "" + +#: ../src/gui_common/CreditsScroll.cs:485 +msgid "THANKS_FOR_PLAYING" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:45 +msgid "BY_REVOLUTIONARY_GAMES" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:52 +msgid "DEVELOPMENT_SUPPORTED_BY" +msgstr "" + +#: ../src/gui_common/CreditsScroll.tscn:60 +msgid "DEVELOPERS" +msgstr "" + #: ../src/gui_common/QuickLoadHandler.tscn:18 msgid "SAVE_HAS_DIFFERENT_VERSION" msgstr "O arquivo salvo não corresponde à versão atual do jogo" diff --git a/locale/pt_PT.po b/locale/pt_PT.po index 97c895877ff..311d53adcbb 100644 --- a/locale/pt_PT.po +++ b/locale/pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-09-10 07:23-0400\n" +"POT-Creation-Date: 2021-09-17 17:10+0300\n" "PO-Revision-Date: 2021-08-29 18:21+0000\n" "Last-Translator: Jorge Maldonado Ventura \n" "Language-Team: Portuguese (Portugal) \n" "Language-Team: Russian \n" "Language-Team: Sinhala \n" "Language-Team: Serbian (cyrillic) \n" "Language-Team: Serbian (latin) \n" "Language-Team: Swedish \n" "Language-Team: Thai \n" "Language-Team: Turkish \n" "Language-Team: Chinese (Simplified) \n" "Language-Team: Chinese (Traditional) FILE_AGE_THRESHOLD + puts 'The download file is too old. Please get a newer version' + else + return + end + end + + puts "A required file for credits generation is missing: #{path}, please download from:" + puts download_url + puts extra if extra + exit 2 +end + +def fetch_wiki_developers + page = Nokogiri::HTML(URI.parse(DEVELOPERS_PAGE).open) + content = page.at_css('#bodyContent') + + in_section = :none + team = :none + + groups = {} + + content.css('.mw-parser-output > *').each do |node| + if node.name == 'h2' + case node.content + when 'Current Team' + in_section = :current + when 'Past Developers' + in_section = :past + when 'Outside Contributors' + in_section = :outside + end + + team = :none + next + end + + if node.name == 'h3' + team = node.content + next + end + + next unless node.name == 'ul' && team != :none && in_section != :none + + groups[in_section] = {} unless groups[in_section] + + list = [] + + node.css('li').each do |child| + lead = child.inner_html.include?('') + + list.append({ person: child.content.strip, lead: lead }) + end + + groups[in_section][team] = list + end + + groups +end + +def fetch_wiki_donations + page = Nokogiri::HTML(URI.parse(DONATIONS_PAGE).open) + content = page.at_css('#bodyContent') + + in_donators = false + + year = nil + month = nil + + donations = {} + + content.css('.mw-parser-output > *').each do |node| + if node.name == 'h2' + in_donators = node.content == 'Donators' + next + end + + next unless in_donators + + if node.name == 'h3' + year = Integer(node.content) + month = nil + next + end + + if node.name == 'h4' + month = node.content + next + end + + next unless node.name == 'ul' && !year.nil? && !month.nil? + + donations[year] = {} unless donations[year] + + list = [] + + node.css('li').each do |child| + list.append(child.content.strip) + end + + donations[year][month] = list + end + + donations +end + +# Removes the old donations that shouldn't be listed in the credits anymore +def prune_old_donations(donations) + now = Time.now.utc + + donations.select! do |year| + donations[year].select! do |month| + time = Time.utc(year, Date::MONTHNAMES.index(month)) + + (now - time).to_i < DONATION_DISPLAY_CUTOFF + end + + donations[year].size.positive? + end +end + +def process_translators(translators) + # For now all languages are rolled into one as many people have just fixed a basic thing in + # a translation without being able to properly participate in it + people = {} + + translators.each do |item| + item.each do |_language, data| + data.each do |user| + name = user[1] + + # Skip deleted users in weblate + next if user[0] == 'noreply+90@weblate.org' || name == 'Deleted User' + + # Ignore weblate admin account to make this a bit nicer + next if name == 'Weblate Admin' + + # Might actually be translations, but anyway this is some activity metric + words = user[2] + + people[name] = if !people.include? name + words + else + people[name] + words + end + end + end + end + + # But we sort the translators based on the total words / translations they have done + people.sort_by { |_k, v| v }.reverse.map { |i| i[0] } +end + +def run + base_path = detect_thrive_folder + + patrons_file = "#{base_path}#{PATRONS_FILE}" + check_file patrons_file, PATRONS_DOWNLOAD + patrons = JSON.parse(File.read(patrons_file)) + + translators_file = "#{base_path}#{TRANSLATORS_FILE}" + check_file translators_file, TRANSLATORS_DOWNLOAD, TRANSLATORS_EXTRA_INSTRUCTIONS + translators = process_translators(JSON.parse(File.read(translators_file))) + + developers = fetch_wiki_developers + + donations = fetch_wiki_donations + prune_old_donations(donations) + + json_file = "#{base_path}simulation_parameters/common/credits.json" + + File.write( + json_file, JSON.generate( + { comment: 'This file is automatically generated by ' \ + 'retrieve_credits.rb! Part of the data is fetched from the Thrive ' \ + 'developer wiki', developers: developers, donations: donations, + translators: translators, patrons: patrons } + ) + ) + + unless jsonlint_on_file(json_file) + puts 'Failed to run jsonlint' + exit 2 + end + + puts "#{json_file} written" +end + +run diff --git a/scripts/update_translation_progress.rb b/scripts/update_translation_progress.rb index caff42e973d..2c31ce581c8 100755 --- a/scripts/update_translation_progress.rb +++ b/scripts/update_translation_progress.rb @@ -7,8 +7,7 @@ require_relative 'po_helpers' require_relative 'json_helpers' - -TOP_LEVEL_FILE_FOR_FOLDER_DETECT = 'Thrive.sln' +require_relative 'folder_detector' def calculate_stats_for(path) in_header = true @@ -85,14 +84,7 @@ def calculate_stats_for(path) end def run - base_path = '' - unless File.exist? TOP_LEVEL_FILE_FOR_FOLDER_DETECT - base_path = '../' - unless File.exist? "#{base_path}TOP_LEVEL_FILE_FOR_FOLDER_DETECT" - puts 'Failed to find the top level Thrive folder' - exit 2 - end - end + base_path = detect_thrive_folder progress = {} stats = { TranslationProgress: progress } diff --git a/simulation_parameters/GameCredits.cs b/simulation_parameters/GameCredits.cs new file mode 100644 index 00000000000..0eee3d0c4b1 --- /dev/null +++ b/simulation_parameters/GameCredits.cs @@ -0,0 +1,107 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +public class GameCredits : IRegistryType +{ + public GameDevelopers Developers { get; set; } + + /// + /// These are the donations from the wiki. The structure is "year<month, list of donations>" + /// + public Dictionary>> Donations { get; set; } + + public List Translators { get; set; } + + public PatronsList Patrons { get; set; } + + /// + /// Unused + /// + public string InternalName { get; set; } + + public void Check(string name) + { + if (Developers == null) + { + throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name, + "Developers is missing"); + } + + if (Developers.Current == null) + { + throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name, + "Current Developers are missing"); + } + + if (Developers.Past == null) + { + throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name, + "Past Developers are missing"); + } + + if (Developers.Outside == null) + { + throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name, + "Outside contributors are missing"); + } + + if (Donations == null) + { + throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name, + "Donations are missing"); + } + + if (Translators == null || Translators.Count < 1) + { + throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name, + "Translators are missing"); + } + + if (Patrons == null) + { + throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name, + "Patrons are missing"); + } + } + + public void ApplyTranslations() + { + } + + public class GameDevelopers + { + // These are maps of the team and list of their members + public Dictionary> Current { get; set; } + public Dictionary> Past { get; set; } + + /// + /// These are outside contributors (non-team members) + /// + public Dictionary> Outside { get; set; } + } + + public class DeveloperPerson + { + [JsonProperty(PropertyName = "person")] + public string Name { get; set; } + + public bool Lead { get; set; } + + public override string ToString() + { + return Name; + } + } + + public class PatronsList + { + [JsonProperty] + public List VIPPatrons { get; set; } + + [JsonProperty] + public List DevBuildPatrons { get; set; } + + [JsonProperty] + public List SupporterPatrons { get; set; } + } +} diff --git a/simulation_parameters/SimulationParameters.cs b/simulation_parameters/SimulationParameters.cs index db981960ee7..716d58d622f 100644 --- a/simulation_parameters/SimulationParameters.cs +++ b/simulation_parameters/SimulationParameters.cs @@ -24,6 +24,7 @@ public class SimulationParameters : Node private readonly List inputGroups; private readonly Dictionary gallery; private readonly TranslationsInfo translationsInfo; + private readonly GameCredits gameCredits; // These are for mutations to be able to randomly pick items in a weighted manner private List prokaryoticOrganelles; @@ -76,6 +77,9 @@ private SimulationParameters() translationsInfo = LoadDirectObject("res://simulation_parameters/common/translations_info.json"); + gameCredits = + LoadDirectObject("res://simulation_parameters/common/credits.json"); + GD.Print("SimulationParameters loading ended"); CheckForInvalidValues(); @@ -200,6 +204,11 @@ public TranslationsInfo GetTranslationsInfo() return translationsInfo; } + public GameCredits GetCredits() + { + return gameCredits; + } + public OrganelleDefinition GetRandomProkaryoticOrganelle(Random random) { float valueLeft = random.Next(0.0f, prokaryoticOrganellesTotalChance); @@ -354,6 +363,7 @@ private void CheckForInvalidValues() NameGenerator.Check(string.Empty); autoEvoConfiguration.Check(string.Empty); translationsInfo.Check(string.Empty); + gameCredits.Check(string.Empty); } private void ResolveValueRelationships() diff --git a/simulation_parameters/common/credits.json b/simulation_parameters/common/credits.json new file mode 100644 index 00000000000..9ef74a91131 --- /dev/null +++ b/simulation_parameters/common/credits.json @@ -0,0 +1,921 @@ +{ + "comment": "This file is automatically generated by retrieve_credits.rb! Part of the data is fetched from the Thrive developer wiki", + "developers": { + "current": { + "Programming Team": [ + { + "person": "FuJa0815", + "lead": false + }, + { + "person": "hhyyrylainen (Henri Hyyryläinen)", + "lead": true + }, + { + "person": "Kasterisk", + "lead": false + }, + { + "person": "Kemikal", + "lead": false + }, + { + "person": "Maxonovien", + "lead": false + }, + { + "person": "Nunz", + "lead": false + }, + { + "person": "Thim", + "lead": false + } + ], + "Theory Team": [ + { + "person": "Bird", + "lead": false + }, + { + "person": "Zarki", + "lead": false + } + ], + "Graphics Team": [ + { + "person": "DonGororo", + "lead": false + }, + { + "person": "Narotiza", + "lead": true + }, + { + "person": "Nunz", + "lead": false + } + ], + "Sound Team": [ + { + "person": "IRUI", + "lead": false + }, + { + "person": "MirrorMonkey2", + "lead": false + }, + { + "person": "Oliveriver", + "lead": true + }, + { + "person": "Twiggs", + "lead": false + }, + { + "person": "TwitchyWhalez", + "lead": false + } + ], + "Outreach Team": [ + { + "person": "Oliveriver", + "lead": false + }, + { + "person": "DonGororo", + "lead": true + }, + { + "person": "Naggorath", + "lead": false + } + ], + "Game Design Team": [ + { + "person": "Buckly", + "lead": true + } + ], + "Testing Team": [ + { + "person": "Sir Danforth", + "lead": false + } + ], + "Project Management Team": [ + { + "person": "hhyyrylainen (Henri Hyyryläinen)", + "lead": true + } + ] + }, + "past": { + "Programming Team": [ + { + "person": "1n48yg", + "lead": false + }, + { + "person": "Anth0rx", + "lead": false + }, + { + "person": "Bashinerox", + "lead": true + }, + { + "person": "billythakidd04", + "lead": false + }, + { + "person": "Commander Keen", + "lead": false + }, + { + "person": "crodnu", + "lead": false + }, + { + "person": "Dak28", + "lead": false + }, + { + "person": "Daniferrito", + "lead": true + }, + { + "person": "femiaf13", + "lead": false + }, + { + "person": "FunnyGames", + "lead": false + }, + { + "person": "GatoCreador887", + "lead": false + }, + { + "person": "hessnake", + "lead": false + }, + { + "person": "Higami", + "lead": false + }, + { + "person": "IceDjuro", + "lead": false + }, + { + "person": "IncaUK", + "lead": false + }, + { + "person": "jaws2blood", + "lead": false + }, + { + "person": "jjonj", + "lead": true + }, + { + "person": "klay2000", + "lead": false + }, + { + "person": "Knightos", + "lead": false + }, + { + "person": "lavathor", + "lead": false + }, + { + "person": "lukaandjelkovic", + "lead": false + }, + { + "person": "montyspud", + "lead": false + }, + { + "person": "moopli", + "lead": true + }, + { + "person": "Nimbal", + "lead": true + }, + { + "person": "Nokk", + "lead": false + }, + { + "person": "ParadoxJuice", + "lead": true + }, + { + "person": "OBPSG", + "lead": false + }, + { + "person": "patowen", + "lead": false + }, + { + "person": "PGelinas", + "lead": false + }, + { + "person": "roadkillguy", + "lead": true + }, + { + "person": "RodGame", + "lead": false + }, + { + "person": "Satharis", + "lead": false + }, + { + "person": "Savalige", + "lead": false + }, + { + "person": "Straywind", + "lead": false + }, + { + "person": "T0N12", + "lead": false + }, + { + "person": "TheCreator", + "lead": false + }, + { + "person": "Treviisolion", + "lead": false + }, + { + "person": "turoni", + "lead": false + }, + { + "person": "tVoss", + "lead": false + }, + { + "person": "untrustedlife", + "lead": false + }, + { + "person": "westtunger", + "lead": false + }, + { + "person": "Zuris", + "lead": false + }, + { + "person": "zyad137", + "lead": false + } + ], + "Theory Team": [ + { + "person": "Rastro", + "lead": false + }, + { + "person": "Andross", + "lead": false + }, + { + "person": "Seregon", + "lead": true + }, + { + "person": "Commander Keen", + "lead": false + }, + { + "person": "Darkov", + "lead": false + }, + { + "person": "GamerXA", + "lead": false + }, + { + "person": "GlassDev", + "lead": false + }, + { + "person": "Hirnsausen", + "lead": true + }, + { + "person": "IncaUK", + "lead": false + }, + { + "person": "moopli", + "lead": false + }, + { + "person": "Mysterious_Calligrapher", + "lead": false + }, + { + "person": "Nimbal", + "lead": false + }, + { + "person": "Noitulove", + "lead": false + }, + { + "person": "Phrenotopian", + "lead": false + }, + { + "person": "Poisson", + "lead": false + }, + { + "person": "~sciocont", + "lead": true + }, + { + "person": "Tarpy", + "lead": false + }, + { + "person": "Tenebrarum", + "lead": false + }, + { + "person": "tjwhale", + "lead": true + }, + { + "person": "The Uteen", + "lead": false + }, + { + "person": "TheCreator", + "lead": false + }, + { + "person": "Tritium", + "lead": false + }, + { + "person": "US_of_Alaska", + "lead": false + }, + { + "person": "whodatxliv", + "lead": false + }, + { + "person": "YourBreakfast", + "lead": false + } + ], + "Graphics Team": [ + { + "person": "Atrox", + "lead": false + }, + { + "person": "braguy.j", + "lead": false + }, + { + "person": "Chizu Nordenstam", + "lead": true + }, + { + "person": "Doc_Xenox", + "lead": false + }, + { + "person": "Gotrol", + "lead": true + }, + { + "person": "HardcoreSpaceTaco", + "lead": false + }, + { + "person": "Minegamer", + "lead": false + }, + { + "person": "meandmy10", + "lead": false + }, + { + "person": "Nanu", + "lead": false + }, + { + "person": "NathanB", + "lead": false + }, + { + "person": "Oliveriver", + "lead": false + }, + { + "person": "Pezzalis", + "lead": false + }, + { + "person": "Poisonchocolate", + "lead": false + }, + { + "person": "~sciocont", + "lead": false + }, + { + "person": "Sporefox", + "lead": false + }, + { + "person": "TheCreator", + "lead": true + }, + { + "person": "TheRabiesGuineaPig", + "lead": false + }, + { + "person": "Theusfilipe", + "lead": false + }, + { + "person": "TheCloudian", + "lead": false + }, + { + "person": "ThreeCubed", + "lead": false + }, + { + "person": "tjblazer85", + "lead": false + }, + { + "person": "Tré Wisemen", + "lead": false + }, + { + "person": "Tritium", + "lead": false + }, + { + "person": "Uniow", + "lead": true + }, + { + "person": "Xazo-Tak", + "lead": false + } + ], + "Sound Team": [ + { + "person": "aechtc", + "lead": false + }, + { + "person": "cphilpot153", + "lead": false + }, + { + "person": "Doggit", + "lead": true + }, + { + "person": "hongchong7", + "lead": true + }, + { + "person": "jorchestration", + "lead": false + }, + { + "person": "LegoHoss", + "lead": false + }, + { + "person": "LionGraphiK", + "lead": false + }, + { + "person": "Madero", + "lead": false + }, + { + "person": "Poisonchocolate", + "lead": false + }, + { + "person": "RedStarSound", + "lead": false + }, + { + "person": "RpTheHotrod", + "lead": false + }, + { + "person": "Totemaster", + "lead": false + }, + { + "person": "visiblesoundscape", + "lead": false + } + ], + "Outreach Team": [ + { + "person": "Atrox", + "lead": false + }, + { + "person": "dontpanic", + "lead": false + }, + { + "person": "lavathor", + "lead": false + }, + { + "person": "~sciocont", + "lead": false + }, + { + "person": "StealthStyleL", + "lead": true + }, + { + "person": "The_Wayward_Admiral", + "lead": false + }, + { + "person": "WJacobC", + "lead": true + } + ], + "Game Design Team": [ + { + "person": "GlassDev", + "lead": false + } + ], + "Testing Team": [ + { + "person": "Dragonmemo", + "lead": false + } + ], + "Project Management Team": [ + { + "person": "Commander Keen", + "lead": false + }, + { + "person": "Hirnsausen", + "lead": true + }, + { + "person": "jjonj", + "lead": false + }, + { + "person": "moopli", + "lead": false + }, + { + "person": "NickTheNick", + "lead": true + }, + { + "person": "Oliveriver", + "lead": false + }, + { + "person": "ParadoxJuice", + "lead": false + }, + { + "person": "Poisson", + "lead": false + }, + { + "person": "~sciocont", + "lead": true + }, + { + "person": "Seregon", + "lead": false + }, + { + "person": "tjwhale", + "lead": false + }, + { + "person": "TheCreator", + "lead": false + }, + { + "person": "US_of_Alaska", + "lead": false + }, + { + "person": "WJacobC", + "lead": false + } + ] + }, + "outside": { + "Pull Requests / Programming": [ + { + "person": "RacerBG (Georgi Georgiev)", + "lead": false + }, + { + "person": "skyace65", + "lead": false + } + ] + } + }, + "donations": { + "2021": { + "July": [ + "Johnny Nuñez" + ], + "August": [ + "CourageTheCat", + "SchlechterName" + ], + "September": [ + "Daniel Liddle", + "SirArag", + "Nathan Hock", + "Sinach", + "Nicholas Coomer", + "Evolution4Weak", + "OoferDoofer" + ] + } + }, + "translators": [ + "punctdan", + "Georgi Georgiev (Жоро)", + "Henri Hyyryläinen", + "doomlightning", + "icedjuro", + "Jan", + "Simone Nobili", + "fgdfgfthgr-fox", + "aleixcoma", + "Nozt", + "Capivaresco", + "Telegina Alexandra", + "TomDev03", + "Levi Monjeau", + "0nmyhead", + "LibreHacker", + "Maksymilian Adamski", + "ShadowMoon", + "Rune Vercauteren", + "Maximilian", + "monkey", + "MGS_Oficial", + "Pajoš", + "S1m0n5-him-self", + "Mauboussin Lucas", + "Bruno Agostinho", + "Jesper Welagen", + "Tibor Šťastný", + "Jiří NnN", + "mrcsilva", + "Lorenzo Fagnani", + "Joah van der Maaden", + "Moriaan Wiegandt", + "François Roduit", + "Kubagliko_PL", + "JG475", + "Felecarp", + "Federico Pelliccioni", + "Nate Magid", + "mattealex", + "Mikael Martikainen", + "Nemilato", + "FrisKisDr", + "Azuriem", + "Jędrzej Kawa", + "Span Staans", + "Jorge Maldonado Ventura", + "Ivan Kurta", + "84634E1A607A", + "Igmc4", + "Davi Augusto Pinto Araújo", + "Elrakrez", + "Осман Хакимов", + "eun4786", + "Rizky Pramudya", + "Radek", + "Aquos Goatington", + "Alex Ges", + "DarkMasterOne", + "Sofia Souza Dias Silva", + "tommy koning", + "EzraZebra", + "Thor Andreas Laan", + "Little Tony", + "Fredy Ivan Sucari Callohuanca", + "Damien", + "the80hz", + "John", + "magicTimon", + "Viktor", + "Albert Saltarin", + "GitHubUser-GER-ENG", + "George Dupond", + "Peter Kleber", + "Generatoror", + "George Fel", + "1n48yg", + "Regi", + "angelbisector", + "josem019", + "", + "Tanner Adkins", + "JeongJinwoo", + "Marco Cirelli", + "blackjacksike", + "Alex Larbière", + "Quincy Holzapfel", + "Matteo Pertegato", + "Shizome", + "Troler", + "jonasschmidt95", + "Tyra Grümpel", + "Juergen Dallmann Junior", + "Sergey Sokolov", + "Filip Szot", + "André Pousette", + "Elias Alvar Branting", + "VojtaHumpl", + "MrTunaPizza", + "Mieszko Polak", + "Patrick Bolde", + "rob-katt", + "Ivan", + "NiceFlowey", + "ender-titan138a53491ef214b90", + "tomato747", + "Alex Jaramillo", + "helabasa", + "Maxonovien", + "intothi", + "Steven Nörenberg", + "Martin Matulík", + "tabat-dectocoder", + "Nunez2196", + "Szymon Ignaczak" + ], + "patrons": { + "vipPatrons": [ + "Aidan Collins", + "andrew james morris", + "blackjacksike", + "Daniel Beauchamp", + "Dylan Paxton", + "fraang", + "Grape", + "Gregory Shutt", + "GRKTheGreat ", + "Jesse Stickling", + "Johnny Nunez", + "Kevin Bair", + "luminousdesigns", + "minimumviablegame", + "Nick McKay", + "Pasi Hyyryläinen", + "redjiii07", + "Roel Smith", + "Samuel Dailey", + "Seamus Monteith", + "TheAGN", + "Timo Kuchheuser" + ], + "devBuildPatrons": [ + "7Games", + "Aaron Arevalo", + "Adam Blaisdell", + "AldebaranCrows", + "Arrogant Worm", + "Atmos Quake", + "Axium ", + "Beint Bentsen", + "Bekay ", + "Ben Cundick", + "Blisto", + "Cameron Schryver", + "Charlie", + "CyrusPlayz", + "Daniel Sanche", + "Doomacz", + "EagleXD ", + "Emil Mannby", + "Ethan Schraven", + "Gal Mashiach", + "Inkplasm", + "Jacob Broida", + "james ellis", + "James R Hill", + "John Ivar Flatmo", + "Josef Strydom", + "Joseph ", + "Joshua Walker", + "Kaleb Todd", + "LeandroLuiz2210", + "Lex", + "Mac ", + "Mac_Mac_Mac", + "Mansfield Sharpe", + "Marcus Comino", + "Martin Hasselø", + "Mathijs Van Dijck", + "Matthew Johnson", + "Mouthwash", + "MR Duff", + "Nicholas Irish", + "No thanks", + "pain_in_the_bex", + "PlannedExponent", + "Poskmyst ?", + "redstars", + "Riley Ortiz", + "Robert Bassett", + "Russel J. Robinson", + "Seveer ", + "Spring Chicken", + "thatguyoverthere ", + "Timo Grümpel", + "Truman Nicholson-DeMott", + "Ultrax ", + "Vance7 ", + "W. Hutton", + "Wladimir", + "WorldChampion", + "Yannik Hesse" + ], + "supporterPatrons": [ + "Adrian Dalen", + "Aleix ", + "Billy Rock Mitchell", + "Boldevin", + "Branting ", + "Caleb Hall Tigh", + "Chad Tester", + "Dan Cohen", + "enchantedpencil", + "Friedrich", + "GingerNinja", + "Guillermo Lozano", + "Jérôme Ramel", + "Kerman Guy", + "Lukas Kubicek .", + "Manuel Hubl", + "Michael Foley", + "Mo Ro", + "nathan tucker", + "OREO_SHI", + "Perasha", + "RubenS", + "Shiuzan", + "Snoogie", + "T3chKn1ght", + "Talas ", + "thephilososhycollective", + "TheRoeler", + "Theseventh ", + "turoni", + "Vilytch", + "William Cedervall", + "Александр Старочкин" + ] + } +} \ No newline at end of file diff --git a/src/general/MainMenu.cs b/src/general/MainMenu.cs index 7c9bc8de789..b827a0a3705 100644 --- a/src/general/MainMenu.cs +++ b/src/general/MainMenu.cs @@ -28,6 +28,12 @@ public class MainMenu : NodeWithInput [Export] public NodePath FreebuildButtonPath; + [Export] + public NodePath CreditsContainerPath; + + [Export] + public NodePath CreditsScrollPath; + [Export] public NodePath GLES2PopupPath; @@ -41,6 +47,9 @@ public class MainMenu : NodeWithInput private AnimationPlayer guiAnimations; private SaveManagerGUI saves; + private Control creditsContainer; + private CreditsScroll credits; + private Button newGameButton; private Button freebuildButton; @@ -134,6 +143,8 @@ private void RunMenuSetup() thriveLogo = GetNode(ThriveLogoPath); newGameButton = GetNode