Skip to content

Latest commit

 

History

History
168 lines (121 loc) · 6.43 KB

localization.md

File metadata and controls

168 lines (121 loc) · 6.43 KB

Logisim-evolution



Updating existing translation

In the path src/main/resources/resources/logisim/ folder you will find the language directories (for example en for English, es for Spanish, pl for Polish etc.). Inside these directories you will find the *.properties files that contain all the application strings translated for specific language.

Each of these files contain content following key = value format, where the key is the string identifier used by the application to obtain given string, and therefore it MUST stay unaltered and the value is the text in the specific language. You can also fine entry starting with # which indicates comment line (these, if found, should not be translated because it may be lost in further automated processing anyway). You will however more often encounter lines like:

# ==> key =

or

# ==> key = English text

This line is automatically generated by trans-tool utility (see below) and it means that a language specific translation of key available and that at runtime, Logisim-evolution takes the default (English) value for this key instead. Once you translate this line, make sure you uncomment it (by removing # ==>) too.

Adding new translation

To add new, non yet existing language version you will need to create *.properties files for your language but also add your language code to src/main/resources/resources/logisim/settings.properties. Please create new ticket if you are willing to contribute new language version, but please ensure you got sufficient man-power to do that first, as there's a lot of text to translate.


Using trans-tool

Trans-tool logo

Quick guide on how to use trans-tool to check Logisim translations.

Setup

  • trans-tool requires Python 3.6+ so you need to have it installed

Installation

I recommend using virtual environment to avoid installing anything globally:

$ python -m venv venv

Activate your environment in Bash compatible shell (if you are using different shell, i.e. Fish, check contents of venv/bin/ folder for alternative scripts):

$ source venv/bin/activate

Now, while in the active venv, install the trans-tool:

$ pip install trans-tool

Now you should have trans-tool (and transtool too, same binary, just name alias) in your path. Remember that you always need to activate the venv prior use in new session/terminal/after reboot/etc.

Go to Logisim's source code root folder and create a small bash script (i.e. scan.sh) with this content:

#!/bin/bash
LANG="pl"
FILES=$(find src/* -name "*.properties" | grep -E '*/[a-zA-Z]+.properties$' | grep "src/main/resources/resources/logisim/strings/")
for f in $FILES; do
    trans-tool -l "${LANG}" -b "${f}"
read
done

Replace pl value of LANG with code of your language!

This script will look for *.properties files that contain no _ in name (so all English base files) and run trans-tool to check them AND language version of yours (if you do not like pause after each file, remove read from the script).

Make script executable:

$ chmod u+x scan.sh

and run

$ ./scan.sh

If you prefer working on single files until you are done, you can replace the invocation of trans-tool with just echo "${f}" (and remove read) so it will print all base files found. Invoke trans-tool manually (where -l specifies your language code and -b points to base file(s)):

$ trans-tool -l pl -b src/main/resources/resources/logisim/strings/soc/soc.properties

Base: src/main/resources/resources/logisim/strings/soc/soc.properties
  Errors: 1
    Brackets
      E: Line 163:90: "AssemblerRunSuccess": No opening character matching ")".
  PL: src/main/resources/resources/logisim/strings/soc/soc_pl.properties
    Errors: 3, warnings: 4
      Brackets
        E: Line 175:83: "AssemblerRunSuccess": No opening character matching ")".
      Formatting values
        E: Line 383:167: "PioMenuOutClearRemark": Expected "%s", found "%s.".
        E: Line 387:167: "PioMenuOutSetRemark": Expected "%s", found "%s.".
      Missing translations
        W: "ElfHeaderEIDataError": Missing translation.
        W: "AsmPanErrorCreateFile": Missing translation.
      Punctuation mismatch
        W: Line 12: "SocInsertTransWindowTitle": Ends with "y". Expected ":".
      First words case mismatch.
        W: Line 332: "Rv32imProgramCounter": Starts UPPER-cased, expected lower-case.

Proofreading existing translations

I often like to see original text when I proofread or translate, without need of switching editor view or anything, therefore trans-tool have an option to rewrite existing translation file (or create new one) with original texts added as comments. Let's say you want to work on your pl translation of said src/main/resources/resources/logisim/strings/soc/soc.properties file. There's already a soc_pl.properties file in the same folder as base one, so we need just update it:

$ trans-tool -l pl -b src/main/resources/resources/logisim/strings/soc/soc.properties -wr

The -wr is short form for --write-ref option.

If you have no translation file but would like from scratch, using --write, --write-contents or --write-ref options will create template file for you:

$ trans-tool -l pl -b src/main/resources/resources/logisim/strings/soc/soc.properties --create -wr

Notes

Some issues trans-tool reports (even as errors) are still "false positives" as not all validators are perfectly tuned (or smart enough yet), so feel free to consider program report as "improvement suggestions" and investigate the reported problems and judge yourself you want to fix it or not. Feel free to suggest improvements to default configuration tweaks.

Issues