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

Internationalization #13

Open
eyedeekay opened this issue Dec 19, 2018 · 4 comments
Open

Internationalization #13

eyedeekay opened this issue Dec 19, 2018 · 4 comments

Comments

@eyedeekay
Copy link
Owner

Moved from #8 because it's it's own whole thing.

  1. Internationalization. This is potentially very big, but at least the skeleton of the infrastructure needs to be there so that as translators do their thing we can just add the translated strings [Seek Clarification:] 08e0898 The latest change removes English-language strings from the main nsi script into an 'include'd script that just declares those variables. It's simple enough to switch between them, but I simply don't know enough about NSIS to do this effectively at this time.
    NSIS Strings on SO1
    MUI2 seems to have facilities for this
@eyedeekay
Copy link
Owner Author

Linux should be pretty easy. It's just shell scripts and .desktop files. Where it's possible to simply replace labels, .desktop files have been altered to reflect different names(I2PBrowser instead of firefox) but this process probably wasn't 100% accurate and definitely isn't complete.

@eyedeekay
Copy link
Owner Author

The web site is also pretty easy. Just create a directory ./translations/cc-CC/ containing the translated versions of ./*.md. Alter "make page" target and dependencies to honor an environment variable "locale"(Remember for CONTRIBUTING.md) which contains the path to the translation.

Split HEADER.md into HEADER.md and INTRO.md, add language links(LANG.md) below HEADER.md and above INTRO.md.

@eyedeekay
Copy link
Owner Author

eyedeekay commented Jan 8, 2019

The easiest, dumbest way to do it on Windows is to have a folder(nsis_strings) which contains translated strings for the installer, with a different version for every locale.

  • Pros:
  1. Far and away the easiest conceptually.
  2. Requires no probing for the user's language because they
    download the bundle for their language already. Less probing is always good, and this might be the only way.
  • Cons:
  1. Requires building dozens of different installers(Hopefully :)! As many as possible!) and directing people to the one appropriate for them effectively.
  2. Requires translations to be done in NSIS format instead of something less "self-hating Makefile." But it's only like, seven lines so does anybody even care?

@zlatinb
Copy link

zlatinb commented Jan 9, 2019

Hi, take a look at the 3rd option provided here https://nsis.sourceforge.io/Creating_language_files_and_integrating_with_MUI

I2P outsources translating to Transifex which uses .po files. It's true that there are very few strings to translate, but the installer supports a ton of languages, so all in all we're talking about quite a few strings.

Also take a look at the head of "i2p.firefox" branch in monotone - it prompts the user for the language and translates all default strings (like "Next", "Cancel", etc.).

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

No branches or pull requests

2 participants