Dev Archipelago: Translate Basics islands to Spanish - #2845
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
|
Play this branch at https://play.threadbare.game/branches/endlessm/archipelago-spanish/. (This launches the game from the start, not directly at the change(s) in this pull request.) |
|
Playtest instructions:
That's it! Here are some screenshots:
|
There are 2 new strings to translate since the last time.
Add all `.tscn` files from Basics. Regenerate the template POT file.
This translates the signposts of the "Basics" Dev Island.
Add this single `.dialogue` file to the list of translatable files. Regenerate the template POT file.
This translates the dialogue of the Basics Elder at Dev Archipelago.
So the .tres file is recognized by the translation system, and title and description of Quests can be extracted to the catalog.
By adding their quest.tres files to the list of translatable files. And regenerating the POT file.
With localized title and description of Dev Basics quests.
2a55ea0 to
a35dbdc
Compare
|
You mentioned somewhere that "Basics" doesn't translate cleanly into Spanish. I wonder if we should actually change the English word too. "Rudiments", "Fundamentals"? (I don't know if these work in US English.) |
The title or surname I used for this elder is "Anciano ConceptosBásicos" which would translate back literally to "BasicConcepts Elder". |
|
@wjt I have rebased this now with Dialogue Manager 4.1 and tested generating the POT file: there are no changes. Then I tried deactivating "Use Static IDs as Translation Keys":
The only thing it does to existing dialogues is removing the #. TRANSLATORS: Character: Basics Elder
#: scenes/dev/components/dev_archipelago_basics_elder.dialogue:3
-msgctxt "dialogue"
msgid "[[Hi|Hello|Greetings]], StoryWeaver. Welcome to Dev Archipelago!"
msgstr ""
#. TRANSLATORS: Character: Basics Elder
#: scenes/dev/components/dev_archipelago_basics_elder.dialogue:4
-msgctxt "dialogue"
msgid "This is a place of creativity, play, and experimentation!"
msgstr ""
#. TRANSLATORS: Character: Basics Elder
#: scenes/dev/components/dev_archipelago_basics_elder.dialogue:5
-msgctxt "dialogue"
msgid "While I can't explain all of what happens here, I invite you to learn about the basics of our unraveling world!"
msgstr ""Then I tested generating those IDs from within the Dialogue Manager tab:
And regenerating the POT. Now I see why the recommendation is to deactivate the setting for gettext: Now: #. TRANSLATORS: Character: Basics Elder
+#. Line: [[Hi|Hello|Greetings]], StoryWeaver. Welcome to Dev Archipelago!
#: scenes/dev/components/dev_archipelago_basics_elder.dialogue:3
msgctxt "dialogue"
-msgid "[[Hi|Hello|Greetings]], StoryWeaver. Welcome to Dev Archipelago!"
+msgid "cjo0b4vsho0yh_722844"
msgstr ""
#. TRANSLATORS: Character: Basics Elder
+#. Line: This is a place of creativity, play, and experimentation!
#: scenes/dev/components/dev_archipelago_basics_elder.dialogue:4
msgctxt "dialogue"
-msgid "This is a place of creativity, play, and experimentation!"
+msgid "cjo0b4vsho0yh_248a95"
msgstr ""
#. TRANSLATORS: Character: Basics Elder
+#. Line: While I can't explain all of what happens here, I invite you to learn about the basics of our unraveling world!
#: scenes/dev/components/dev_archipelago_basics_elder.dialogue:5
msgctxt "dialogue"
-msgid "While I can't explain all of what happens here, I invite you to learn about the basics of our unraveling world!"
+msgid "cjo0b4vsho0yh_285cb3"
msgstr ""And after reactivating "Use Static IDs as Translation Keys" I see the static IDs used as "msgctxt", while the string keeps being translatable: #. TRANSLATORS: Character: Basics Elder
#: scenes/dev/components/dev_archipelago_basics_elder.dialogue:3
-msgctxt "dialogue"
+msgctxt "cjo0b4vsho0yh_722844"
msgid "[[Hi|Hello|Greetings]], StoryWeaver. Welcome to Dev Archipelago!"
msgstr ""
#. TRANSLATORS: Character: Basics Elder
#: scenes/dev/components/dev_archipelago_basics_elder.dialogue:4
-msgctxt "dialogue"
+msgctxt "cjo0b4vsho0yh_248a95"
msgid "This is a place of creativity, play, and experimentation!"
msgstr ""
#. TRANSLATORS: Character: Basics Elder
#: scenes/dev/components/dev_archipelago_basics_elder.dialogue:5
-msgctxt "dialogue"
+msgctxt "cjo0b4vsho0yh_285cb3"
msgid "While I can't explain all of what happens here, I invite you to learn about the basics of our unraveling world!"
msgstr ""So we have 2 options:
|
wjt
left a comment
There was a problem hiding this comment.
LGTM.
So we have 2 options:
- Leave "Use Static IDs as Translation Keys" enabled and document to not add Static IDs to dialogues
- Or disable "Use Static IDs as Translation Keys"
I suggest 2 - this does something sensible regardless of whether we eventually use static IDs.
There was a problem hiding this comment.
Wow. I expected that there would be some vfunc on nodes/resources that gets translations for their properties; or maybe some property export flag that means "translate me". But no! In fact the built-in translations of properties of scenes is an implementation of EditorTranslationParserPlugin with loads of hardcoded special cases, e.g. "If a node is a direct child of a TabContainer, then its name should be translated".
There was a problem hiding this comment.
Good to know! Great source to use as reference too. For example, the use of get_recognized_extensions_for_type().
|
This branch seems to break the Enemy Interaction Elder but I can't figure out why. False alarm. I think there's some upgrade bug in Dialogue Manager which can be worked around by deleting |
Co-authored-by: Will Thompson <wjt@endlessaccess.org>
We use gettext and according to the addon, this should be disabled. Regenerate the POT file, which removes the msgctxt "dialogue" from dialogue lines.







This translates:
ThreadbareEditor addon: Add translation parser for quests
So the .tres file is recognized by the translation system, and title and
description of Quests can be extracted to the catalog.
Update the list of translatable files:
Add the following new files:
.tscnfiles from Dev Basics.Regenerate the template POT file and update Spanish translation.
Resolves #2844