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.
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.
Quick guide on how to use trans-tool to check Logisim translations.
trans-tool
requires Python 3.6+ so you need to have it installed
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.
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
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.
- Please see trans-tool for detailed docs
- If you spot any issues with the tool, please create a ticket