We have a new Beta: v0.8.13 ("Troubling Times") !
Useful links
Source code of the game - Contribution guide - ATCS Editor - Translate the game on Weblate - Example walkthrough - Andor's Trail Directory - Join the Discord
Get the game (v0.8.12.1) from Google, F-Droid, our server, or itch.io
Useful links
Source code of the game - Contribution guide - ATCS Editor - Translate the game on Weblate - Example walkthrough - Andor's Trail Directory - Join the Discord
Get the game (v0.8.12.1) from Google, F-Droid, our server, or itch.io
Translation using PO files
-
- Captain Awesome
- Posts: 368
- Joined: Sat Jan 29, 2011 8:51 am
- android_version: 2.3 - Gingerbread
- Location: Stockholm, Sweden
Translation using PO files
Hi,
Are you a translator? We'd love to have your help! Read on for the details.
We're playing with the idea of using PO files for translations, instead of using copies of our current resource files. Using a standardized translation format would mean that translators can use existing tools available for translation, instead of our custom-built tools for Andor's Trail. It could also mean that we can use a web-based interface for translators to work in, to collaboratively manage translations, instead of sending files back and forth.
We're currently looking at testing some existing software for this, and we'd like your help in beta-testing some parts of it. Specifically, we'd love to hear from translators that want to help beta-test and work on how to streamline the process of translations of Andor's Trail in the future. Also, if you have experience working with PO or POT files, we'd love to hear from you.
Please let us know if you're a translator and you'd like to help beta test some new software for translation!
Thanks in advance.
Regards
/The Andor's Trail dev team
Are you a translator? We'd love to have your help! Read on for the details.
We're playing with the idea of using PO files for translations, instead of using copies of our current resource files. Using a standardized translation format would mean that translators can use existing tools available for translation, instead of our custom-built tools for Andor's Trail. It could also mean that we can use a web-based interface for translators to work in, to collaboratively manage translations, instead of sending files back and forth.
We're currently looking at testing some existing software for this, and we'd like your help in beta-testing some parts of it. Specifically, we'd love to hear from translators that want to help beta-test and work on how to streamline the process of translations of Andor's Trail in the future. Also, if you have experience working with PO or POT files, we'd love to hear from you.
Please let us know if you're a translator and you'd like to help beta test some new software for translation!
Thanks in advance.
Regards
/The Andor's Trail dev team
/Oskar
-
- VIP
- Posts: 655
- Joined: Wed Feb 23, 2011 3:35 pm
- android_version: 2.2
Re: Translation using PO files
I am willing to beta test. Until now I never used PO/POT files.
I have doubts about the new format. Currently we have Conversation IDs that lead us to the next phrase. So we can translate in the context of several other phrases.
Is there something similar planned with the new format? As far as I see the context is not available in the new format. Am I missing something?
Another (IMO really important) thing:
Usually I keep track of every change in the English "translation" to judge if the according German translation needs to be adjusted too. So several strings (for example skill descriptions like ECC), conversations, etc. have been updated in the past and I forwarded this changes to the German translation. (if it have not been typos)
Now there has been a major refactoring in the ressources recently and there will be another one when changing to PO files.
Currently I cannot keep track of the recent refactoring, because I miss the latest files of the English translation before the refactoring and the earliest files after the refactoring.
Could you deploy this files for developers somewhere?
I have doubts about the new format. Currently we have Conversation IDs that lead us to the next phrase. So we can translate in the context of several other phrases.
Is there something similar planned with the new format? As far as I see the context is not available in the new format. Am I missing something?
Another (IMO really important) thing:
Usually I keep track of every change in the English "translation" to judge if the according German translation needs to be adjusted too. So several strings (for example skill descriptions like ECC), conversations, etc. have been updated in the past and I forwarded this changes to the German translation. (if it have not been typos)
Now there has been a major refactoring in the ressources recently and there will be another one when changing to PO files.
Currently I cannot keep track of the recent refactoring, because I miss the latest files of the English translation before the refactoring and the earliest files after the refactoring.
Could you deploy this files for developers somewhere?
Level: 101, XP: 18780586, Gold: 358739
HP: 398, AC: 303%, AD: 84-95, AP: 4, ECC: 12, CM: -, BC: 13%, DR: 0
RoLS: 2, ElyR: 1, RoL: 1, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 2, VSH: 1, WMC: 0, GoW: 0
HP: 398, AC: 303%, AD: 84-95, AP: 4, ECC: 12, CM: -, BC: 13%, DR: 0
RoLS: 2, ElyR: 1, RoL: 1, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 2, VSH: 1, WMC: 0, GoW: 0
-
- VIP
- Posts: 655
- Joined: Wed Feb 23, 2011 3:35 pm
- android_version: 2.2
Re: Translation using PO files
I did find a solution to keep track of recent changes to forward them to the German translation.
It's possible to (hard-)reset a git branch to any revision.
I found this changes to the translation:
It's possible to (hard-)reset a git branch to any revision.
I found this changes to the translation:
Code: Select all
values\strings.xml > name="heroinfo_reequip_cost"
values\strings.xml > name="heroinfo_useitem_cost"
itemlist_v0610_1.json > "id": "gloves_troublemaker" > "description"
raw\actorconditions_v0612_2.json > complete file
Level: 101, XP: 18780586, Gold: 358739
HP: 398, AC: 303%, AD: 84-95, AP: 4, ECC: 12, CM: -, BC: 13%, DR: 0
RoLS: 2, ElyR: 1, RoL: 1, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 2, VSH: 1, WMC: 0, GoW: 0
HP: 398, AC: 303%, AD: 84-95, AP: 4, ECC: 12, CM: -, BC: 13%, DR: 0
RoLS: 2, ElyR: 1, RoL: 1, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 2, VSH: 1, WMC: 0, GoW: 0
-
- Captain Awesome
- Posts: 368
- Joined: Sat Jan 29, 2011 8:51 am
- android_version: 2.3 - Gingerbread
- Location: Stockholm, Sweden
Re: Translation using PO files
I also try to keep a positive mind about new things that I haven't worked on before. Personally, if there's something I haven't seen yet, I try to keep my mind open to change, and try to keep a positive outlook on it. Having a positive mind, even about things that you haven't seen yet, is one of the key concepts in achieving success.Samuel wrote:I have doubts about the new format. Currently we have Conversation IDs that lead us to the next phrase. So we can translate in the context of several other phrases.
Is there something similar planned with the new format? As far as I see the context is not available in the new format. Am I missing something?
In terms of the PO files, they would totally replace the translated json files, so that the only json files that would be present would be the ones in the default translation (English). The PO files would contain only the translations of each English phrase, thereby separating the translation from the definition of stats on items, monsters and conversation flow etc.
Translations in PO files are usually done without an ID to define the string to be translated - usually the English string itself is used as an ID. That way, if some English string changes, it would be apparent that all translations would need to be updated as well.
Regarding context - PO files support something built-in called "context", where we can define what the string itself refers to. Other than than, by default, my plan is to have the PO files sorted by the current conversation flow, so that you can keep translating a whole conversation by stepping one phrase at a time. Just like the old resource file format, but without the funky pipe-sign formatting.
Behold. The power of the almight gitLinus Torvalds:Samuel wrote:Another (IMO really important) thing:
Usually I keep track of every change in the English "translation" to judge if the according German translation needs to be adjusted too. So several strings (for example skill descriptions like ECC), conversations, etc. have been updated in the past and I forwarded this changes to the German translation. (if it have not been typos)
I am so glad we moved to using git for revision control. Not only does it allow us to work on different feature branches in parallel, but also allows us to do the things that you yourself seek.Samuel wrote:Now there has been a major refactoring in the ressources recently and there will be another one when changing to PO files.
Currently I cannot keep track of the recent refactoring, because I miss the latest files of the English translation before the refactoring and the earliest files after the refactoring.
Since we run this project as an open-source project, It's all available in the git repository at http://code.google.com/p/andors-trail/source/list .Samuel wrote:Could you deploy this files for developers somewhere?
Git has a lot of great features available, but it requires some learning to be able to master them all. See this as a learning step towards the enlightenment that is Git

Me, I run everything on Linux as you might have noticed, which makes everything a lot easier. From people that still are forced to use other OS:es, I hear they are happy with using Git extensions, which has a graphical user interface, for those that want those types of UIs.
The main reasoning behind the change of translation format is to keep down the amount of administrative work that translators have to do, and to focus that work on actually translating things instead. While a knowledge of git commands is useful if you want to be a developer, my view is translation is something totally different. If some translation needs updating, the tool should tell you that. PO files with using the English phrase as ID, in my view, does exactly that - it keeps the focus on the phrase that needs to be translated, and away from whether we format resource files as json or from whether the resource files have been split into several files.
I am totally positive about changing the translations to something else than duplicating the item- & monster stats for each translation.
/Oskar
-
- Captain Awesome
- Posts: 368
- Joined: Sat Jan 29, 2011 8:51 am
- android_version: 2.3 - Gingerbread
- Location: Stockholm, Sweden
Re: Translation using PO files
Anyway, here's an example of what the English (.POT) and German (.PO) files could look like. (see attached files)
There are several tools available for handling PO file translations, but the most frequently used client-side program is supposedly poedit.
There's also online tools available that can even suggest machine-translations, for example https://poeditor.com/
In terms of free- & open-source software, I hear a lot of people are happy with using their own installations of Pootle or Weblate, which are all open-source, and well maintained projects.
Overall, I think the concept of building Andor's Trail using things that other (even more clever) people have built is the only way forward. That way, we in the dev team of Andor's Trail can focus on building things that and central to Andor's Trail, instead of spending our development time on building translation tools that other (more clever) people have already built before us.
Personally, I'm really positive about the whole concept of doing translations in a more standardized format, since it will mean less tedious work both for the people doing translations, and for us that maintain the core Andor's Trail world.
There are several tools available for handling PO file translations, but the most frequently used client-side program is supposedly poedit.
There's also online tools available that can even suggest machine-translations, for example https://poeditor.com/
In terms of free- & open-source software, I hear a lot of people are happy with using their own installations of Pootle or Weblate, which are all open-source, and well maintained projects.
Overall, I think the concept of building Andor's Trail using things that other (even more clever) people have built is the only way forward. That way, we in the dev team of Andor's Trail can focus on building things that and central to Andor's Trail, instead of spending our development time on building translation tools that other (more clever) people have already built before us.
Personally, I'm really positive about the whole concept of doing translations in a more standardized format, since it will mean less tedious work both for the people doing translations, and for us that maintain the core Andor's Trail world.
You do not have the required permissions to view the files attached to this post.
/Oskar
-
- VIP
- Posts: 655
- Joined: Wed Feb 23, 2011 3:35 pm
- android_version: 2.2
Re: Translation using PO files
Noone else interested in this topic?
Here are the disadvantages I can think of:
1. Context may be lost
You addressed it nicely with the comments about the IDs using the current string.
2. How should we handle updates of English string?
a) One could argue the previous (translated) string is not valid anymore. So it would be deleted along with its translation. However there is a low probability that typos get translated too. So we would loose a valid translation. (probably in the middle of an translation - some translations are not updated before new releases)
b) One could reuse the previous translation for the updated string. But this would mean the translation gets probably invalid and the translator wouldn't be informed. (he could use Winmerge)
c) One could reuse the previous translation and introduce comments like this to inform the translator: (it would be hard to generate this comments automatically)
3. Currently there may be different translations for the same string (because of typos, translations mistakes, different translation possibilities)
Perhaps we should introduce comments like this to inform the translator: (it would be hard to generate this comments automatically)
Otherwise we may use the wrong translation.
4. A translator may have started a translation weeks ago
There is need of merging depending on how much of the English translation has been changed. The use of static IDs would avoid that, but I prefer the strings as IDs.
5. A partly translation sucks
I heard about that many times. We would support that because the string is the ID. Some strings get translated early: "Welcome", "Goodbye", "What do you have to trade?" So in untranslated conversations from time to time suddenly an translated sentence will pop up. IMO we should only use the translated strings if the whole conversation of a npc or of an area or the whole questlog of a quest has been translated. Please don't tell me we should use Google translate then...
Could you (and others) please comment on this 5 issues?
Oskar, don't get me wrong. I also think we need to change from the current format. Currently the administrative overhead is really big. I think the new files do have very great benefits. However there may be disadvantages too and IMO we should address them before we introduce the new format.I also try to keep a positive mind about new things that I haven't worked on before. Personally, if there's something I haven't seen yet, I try to keep my mind open to change, and try to keep a positive outlook on it.
Here are the disadvantages I can think of:
1. Context may be lost
You addressed it nicely with the comments about the IDs using the current string.
2. How should we handle updates of English string?
a) One could argue the previous (translated) string is not valid anymore. So it would be deleted along with its translation. However there is a low probability that typos get translated too. So we would loose a valid translation. (probably in the middle of an translation - some translations are not updated before new releases)
b) One could reuse the previous translation for the updated string. But this would mean the translation gets probably invalid and the translator wouldn't be informed. (he could use Winmerge)
c) One could reuse the previous translation and introduce comments like this to inform the translator: (it would be hard to generate this comments automatically)
Code: Select all
#: TODO - this English entry has previously been '...' please update the translation if necessary and remove this comment
Perhaps we should introduce comments like this to inform the translator: (it would be hard to generate this comments automatically)
Code: Select all
#: TODO - this translated entry had previously the following additional translations: '...', '...', '...' please update the translation if necessary and remove this comment
4. A translator may have started a translation weeks ago
There is need of merging depending on how much of the English translation has been changed. The use of static IDs would avoid that, but I prefer the strings as IDs.
5. A partly translation sucks
I heard about that many times. We would support that because the string is the ID. Some strings get translated early: "Welcome", "Goodbye", "What do you have to trade?" So in untranslated conversations from time to time suddenly an translated sentence will pop up. IMO we should only use the translated strings if the whole conversation of a npc or of an area or the whole questlog of a quest has been translated. Please don't tell me we should use Google translate then...
Could you (and others) please comment on this 5 issues?
Level: 101, XP: 18780586, Gold: 358739
HP: 398, AC: 303%, AD: 84-95, AP: 4, ECC: 12, CM: -, BC: 13%, DR: 0
RoLS: 2, ElyR: 1, RoL: 1, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 2, VSH: 1, WMC: 0, GoW: 0
HP: 398, AC: 303%, AD: 84-95, AP: 4, ECC: 12, CM: -, BC: 13%, DR: 0
RoLS: 2, ElyR: 1, RoL: 1, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 2, VSH: 1, WMC: 0, GoW: 0
-
- Posts: 13
- Joined: Tue Nov 20, 2012 8:54 am
- android_version: 4.1 - Jellybean
Re: Translation using PO files
Hey guys,
I would love to get on board with translating. I once started proofreading the German translation and made a few changes, but Samuel uploaded a new version and I never got around to compare the versions.
So I would love to see an online, collaborative translation system where the current translations are hosted in one place, so we don't have to send files around.
I haven't looked at the new file formats, so I don't have an opinion about that yet. Just wanted to say that I want to help and would definitely like to see some kind of system where all translators can work simultaneously in order to avoid the version mismatch that kept me from further translating back then.
I would love to get on board with translating. I once started proofreading the German translation and made a few changes, but Samuel uploaded a new version and I never got around to compare the versions.
So I would love to see an online, collaborative translation system where the current translations are hosted in one place, so we don't have to send files around.
I haven't looked at the new file formats, so I don't have an opinion about that yet. Just wanted to say that I want to help and would definitely like to see some kind of system where all translators can work simultaneously in order to avoid the version mismatch that kept me from further translating back then.
-
- VIP
- Posts: 655
- Joined: Wed Feb 23, 2011 3:35 pm
- android_version: 2.2
Re: Translation using PO files
Could you please send me whatever you have? I will happily merge the changes you made. (even if in old format - i will merge relevant changes)spooky wrote:Hey guys,
I would love to get on board with translating. I once started proofreading the German translation and made a few changes, but Samuel uploaded a new version and I never got around to compare the versions.
So I would love to see an online, collaborative translation system where the current translations are hosted in one place, so we don't have to send files around.
I haven't looked at the new file formats, so I don't have an opinion about that yet. Just wanted to say that I want to help and would definitely like to see some kind of system where all translators can work simultaneously in order to avoid the version mismatch that kept me from further translating back then.
I also think the new format is a big improvement towards collaborative translation.
Level: 101, XP: 18780586, Gold: 358739
HP: 398, AC: 303%, AD: 84-95, AP: 4, ECC: 12, CM: -, BC: 13%, DR: 0
RoLS: 2, ElyR: 1, RoL: 1, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 2, VSH: 1, WMC: 0, GoW: 0
HP: 398, AC: 303%, AD: 84-95, AP: 4, ECC: 12, CM: -, BC: 13%, DR: 0
RoLS: 2, ElyR: 1, RoL: 1, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 2, VSH: 1, WMC: 0, GoW: 0
-
- VIP
- Posts: 655
- Joined: Wed Feb 23, 2011 3:35 pm
- android_version: 2.2
Re: Translation using PO files
It looks like this:spooky wrote:I haven't looked at the new file formats, so I don't have an opinion about that yet.
Code: Select all
#: conversationlist_alynndir.json:alynndir_1
msgid "Hello there. Welcome to my cabin."
msgstr "Hallo. Willkommen in meiner Hütte."
#: conversationlist_alynndir.json:alynndir_1:0
#: conversationlist_farrik.json:farrik_2:0
#: conversationlist_foamingflask_guards.json:ff_captain_2:1
#: conversationlist_foamingflask_outsideguard.json:ff_outsideguard_2:1
#: conversationlist_thievesguild_1.json:thievesguild_troublemaker_1:1
msgid "What do you do around here?"
msgstr "Was machst du hier?"
#: conversationlist_alynndir.json:alynndir_1:1
#: conversationlist_alynndir.json:alynndir_2:1
msgid "What can you tell me about the surroundings here?"
msgstr "Was kannst du mir über die Umgebung hier erzählen?"
#: conversationlist_alynndir.json:alynndir_2
msgid "Mostly, I trade with travelers on the main road on the way to Nor City."
msgstr "Meistens handle ich mit Reisenden auf der Hauptstraße auf dem Weg nach Nor City."
#: conversationlist_alynndir.json:alynndir_2:0
#: conversationlist_crossglen.json:arambold1:1
#: conversationlist_crossglen.json:mara_default:0
#: conversationlist_crossglen_tharal.json:tharal1:0
#: conversationlist_fallhaven_tavern.json:ganos:0
msgid "Do you have anything to trade?"
msgstr "Hast du etwas zu verkaufen?"
Level: 101, XP: 18780586, Gold: 358739
HP: 398, AC: 303%, AD: 84-95, AP: 4, ECC: 12, CM: -, BC: 13%, DR: 0
RoLS: 2, ElyR: 1, RoL: 1, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 2, VSH: 1, WMC: 0, GoW: 0
HP: 398, AC: 303%, AD: 84-95, AP: 4, ECC: 12, CM: -, BC: 13%, DR: 0
RoLS: 2, ElyR: 1, RoL: 1, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 2, VSH: 1, WMC: 0, GoW: 0
-
- Captain Awesome
- Posts: 368
- Joined: Sat Jan 29, 2011 8:51 am
- android_version: 2.3 - Gingerbread
- Location: Stockholm, Sweden
Re: Translation using PO files
Let's try using Launchpad for translations. Launchpad is an open source project hosting site, originally created by Canonical for Ubuntu. They have an online collaborative translation service, where people can suggest translations for different languages, and get suggestions from translations of similar phrases in other open-source projects.
Follow this link, and click on "View all languages" on the right-hand side.
https://translations.launchpad.net/andors-trail/trunk
Follow this link, and click on "View all languages" on the right-hand side.
https://translations.launchpad.net/andors-trail/trunk
/Oskar