Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

i18n: Remove wesnoth-ai textdomain #4669

Closed
irydacea opened this issue Dec 27, 2019 · 5 comments · Fixed by #5174
Closed

i18n: Remove wesnoth-ai textdomain #4669

irydacea opened this issue Dec 27, 2019 · 5 comments · Fixed by #5174
Assignees
Labels
AI Issues with the AI engine, including micro AIs. Blocker: New Stable Issues that must be resolved prior to the next stable series being released. Enhancement Issues that are requests for new features or changes to existing ones. Translations Issues with translations, translation tooling, the translations engine, or code that uses it.
Milestone

Comments

@irydacea
Copy link
Member

irydacea commented Dec 27, 2019

Currently, Wesnoth ships with a whole textdomain dedicated to localized strings revolving around the game's AI engine and the AI demos/test scenarios. As of the current master branch tip (84ab060), the string count for this textdomain is 378.

The problem is that other than a few strings near the start of the catalogue template, none of the other strings have any value for regular players since they are sourced from AI demos/test scenarios in data/ai/micro_ais/ and data/ai/scenarios/. None of them will be displayed to people who aren't tinkering with WML or contributing to AI development as part of the Wesnoth dev team, and some of the language used in them is very technical in nature.

Since version 1.14.0, translated string count is used to determine whether a translation should even be listed in the Language menu to players by default, so it's not an option for translators to skip strings that dont' crop up in normal gameplay. The majority of the textdomain thus constitutes unnecessary workload for translators (especially so for new translations and abandoned translations in need of extensive review). In my experience as the former maintainer of the Spanish translation in 2008/2009, every single string counts when you're pressured to reach 100% string count before the first gold release of a new stable series.

Thus my proposal is to move the strings that actually have some relevance to the user to wesnoth or wesnoth-lib (ignoring for a moment the fact that both of these textdomains really ought to be either merged or shuffled around) and exclude the rest of the sources of the wesnoth-ai textdomain from wmlxgettext passes. This can be done in master and optionally backported to stable if it's deemed to be a low-risk change.

@irydacea irydacea added Enhancement Issues that are requests for new features or changes to existing ones. AI Issues with the AI engine, including micro AIs. Translations Issues with translations, translation tooling, the translations engine, or code that uses it. labels Dec 27, 2019
@stevecotton
Copy link
Contributor

stevecotton commented Aug 4, 2020

I couldn't find this on the wiki roadmap, so have added it to 1.15.10 (and assigned that to myself on the wiki).

If anyone wants to do it earlier, please feel free to reassign it.

@stevecotton stevecotton self-assigned this Aug 10, 2020
@stevecotton stevecotton added the Blocker: New Stable Issues that must be resolved prior to the next stable series being released. label Aug 10, 2020
@Pentarctagon Pentarctagon added this to the 1.16.0 milestone Aug 10, 2020
@stevecotton
Copy link
Contributor

AFAICS, the strings to move to wesnoth or wesnoth-lib are exclusively the ones that start Multiplayer_AI^.

data/ai/ais/ai_default_rca.cfg:    description=_"Multiplayer_AI^Default AI (RCA)" # wmllint: no spellcheck
data/ai/ais/ai_default_rca_1_14.cfg:    description=_"Multiplayer_AI^1.14 Default AI" # wmllint: no spellcheck
data/ai/ais/ai_experimental.cfg:    description=_"Multiplayer_AI^Experimental AI" # wmllint: no spellcheck
data/ai/ais/idle_ai.cfg:    description=_"Multiplayer_AI^Dev AI: Idle AI" # wmllint: no spellcheck
data/ai/dev/ai_default_rca_alternate_recruiting.cfg:    description=_"Multiplayer_AI^Dev AI: Default AI (RCA) with Alternate Recruiting" # wmllint: no spellch
eck
data/ai/dev/formula_ai.cfg:    description=_"Multiplayer_AI^Dev AI: Default + Experimental Recruitment (Formula AI)" # wmllint: no spellcheck
data/ai/dev/formula_ai_poisoning.cfg:    description=_"Multiplayer_AI^Dev AI: Default + Poisoning (Formula AI)" # wmllint: no spellcheck

Each of the files above has exactly one translatable string, which is the one we want to keep.

Other observations

There are many languages where both Multiplayer_AI^1.14 Default AI and Multiplayer_AI^Default AI are translated to the same string (without the 1.14).

Many languages have ancient fuzzies for these strings in the wesnoth text domain, but with the translation of "Multiplayer". Moving the strings to wesnoth-lib instead of wesnoth would avoid involvement with that.

IIUC, the wesnoth-ai textdomain doesn't contribute to the stats on whether a translation is complete enough to be shown without --all-translations. I think that's limited to only these sets:

--textdomains=wesnoth,wesnoth-editor,wesnoth-help,wesnoth-lib,wesnoth-multiplayer,wesnoth-tutorial,wesnoth-units

env.Alias("pot-update", "../translations", "python3 utils/po_stat.py --update-cfg --textdomains=wesnoth,wesnoth-editor,wesnoth-help,wesnoth-lib,wesnoth-multiplayer,wesnoth-tutorial,wesnoth-units")

However, I fully agree that we shouldn't be asking translators to translate the current contents of wesnoth-ai.

@AI0867
Copy link
Member

AI0867 commented Sep 15, 2020

Other observations

There are many languages where both Multiplayer_AI^1.14 Default AI and Multiplayer_AI^Default AI are translated to the same string (without the 1.14).

1.14 Default AI isn't the clearest string, so it may be a good idea to replace it. Would Old Default AI (version 1.14) fit in the dropdown?

@stevecotton
Copy link
Contributor

Looks great in English, and not bad in a longer language:
wesnoth_rename_old_ai

@CelticMinstrel
Copy link
Member

Would Old Default AI (version 1.14) fit in the dropdown?

Looks great in English, and not bad in a longer language:

In fact, it looks like length isn't really a concern as the dropdown will just expand to fit it… assuming of course that the expand-to-fit behaviour isn't itself a bug, which it might be…

stevecotton added a commit to stevecotton/wesnoth that referenced this issue Sep 26, 2020
…esnoth#4669)

This whole textdomain is dedicated to localized strings revolving around the
game's AI engine and the AI demos/test scenarios, with around 370 strings in
it.

Other than a few strings near the start of the catalogue template, none of these
have any value for regular players since they are sourced from AI demos and
test scenarios in data/ai/micro_ais/ and data/ai/scenarios/. None of them will
be displayed to people who aren't tinkering with WML or contributing to AI
development as part of the Wesnoth dev team, and some of the language used in
them is very technical in nature.

This commit leaves the "#textdomain wesnoth-ai" lines in the AI demos, but
drops the .po and .pot catalogues for wesnoth-ai. The few strings that are
seen by regular players move to the wesnoth-lib textdomain.
stevecotton added a commit that referenced this issue Oct 1, 2020
…4669)

This whole textdomain is dedicated to localized strings revolving around the
game's AI engine and the AI demos/test scenarios, with around 370 strings in
it.

Other than a few strings near the start of the catalogue template, none of these
have any value for regular players since they are sourced from AI demos and
test scenarios in data/ai/micro_ais/ and data/ai/scenarios/. None of them will
be displayed to people who aren't tinkering with WML or contributing to AI
development as part of the Wesnoth dev team, and some of the language used in
them is very technical in nature.

This commit leaves the "#textdomain wesnoth-ai" lines in the AI demos, but
drops the .po and .pot catalogues for wesnoth-ai. The few strings that are
seen by regular players move to the wesnoth-lib textdomain.
hrubymar10 added a commit to hrubymar10/wesnoth-cs that referenced this issue Oct 1, 2020
hrubymar10 added a commit to hrubymar10/wesnoth-cs that referenced this issue Oct 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AI Issues with the AI engine, including micro AIs. Blocker: New Stable Issues that must be resolved prior to the next stable series being released. Enhancement Issues that are requests for new features or changes to existing ones. Translations Issues with translations, translation tooling, the translations engine, or code that uses it.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants