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

[WIP] WoWSims True i18n Support #1317

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from
Draft

Conversation

dodoels
Copy link

@dodoels dodoels commented Jan 20, 2025

Description

In this PR, I manage to create a true i18n support that generically works for all languages. The motivation comes from when I worked on CN fork, the localization was a painful process and does not scala when new feature is added. By having true i18n support, devs from different region/client can easily translate every text in WoWSims, including UI labels, database items and spells, not only just the wowhead assets and tooltips.

Tech Design (WIP)

WoWSims i18n

  1. Abstract the current locale setting model to be centralized in its own model/setting.
  2. Create translation util service that can be used in UI whenever a text is added. (e.g. util.translate("feral.rotation.bearweave.label")
  3. Abstract the current english text into a locale json file (e.g. locale_en.json). When translate() is being called, it should get the translation from locale_{lang}.json. This action item might take multiple phases, starting from generic UI (e.g. home page, tabs etc. shared texts) to custom UI (e.g. class specific settings)
  4. Create locale translation pipeline that synchronize with locale_en.json. Devs can either manually or use LLM to do the work.
  5. Create a crawler pipeline to translate db.json and enchants/descriptions.json. This has been done in CN fork in the past; data crawled with the database pipeline from wowhead with different language tag creates massive amount of unconsistency in data. Therefore, db.json in english should be the single source of truth.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant