Skip to content

Translating Icestudio

Juan Gonzalez-Gomez edited this page Jun 12, 2024 · 15 revisions

Introduction

Icestudio is available in different languages. Please, help us with the translations. Contributions are very welcome! 😀️

The base language is English. The translations from English to other languages are located in this folder:

Steps to translate

If you want to translate into your mother tongue (or update the current translation), follow these steps:

Get the English texts into the template file

The first step is to extract the latest English text to be translated. It is done by executing the following command:

npm run preptext

It will update the template file: app/resources/locale/template.pot. It contains all the English texts ready for being imported into the poedit and translated into your language. it also runs scripts/update_translations.sh, to update the existing *.po language files so they are synched to the template

Note

for Windows, use npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe" or equivalent so the postinstall script can run during npm install

Note

for Windows, if commands msgmerge, msgfmt are not found while executing update_translations.sh, then they weren't installed with MSYS2/Git Bash; a Windows binary installer for GNU gettext utils will take care of this: https://mlocati.github.io/articles/gettext-iconv-windows.html; download the "static" flavor for 64bit Windows; include it in PATH (done in an install step)

Open the .po file with POEDIT

The .po files contains the translations to the different languages. They are located under the corresponding locale folder: app/resources/locale. There is one folder per locale. For example, for the spanish language (from spain) the .po file is located in the folder: app/resources/locale/es_ES

Use the POEDIT to open the .po file

Update from the POT file

From the POEDIT, use the menu option Translation/Update from POT file... for merging the updated .pot file into your translations

Translate the English texts

Using the POEDIT you can easily translate the English texts into your language. Once you are ready save the .po file. You can now emit a pull request with your translation

Icestudio locale JSON files

What happens with the .po files with the translations? Icestudio does not read the .po files directly. When the Icestudio executable file is created, the .po files are compiled into .json files (For example, the es_ES.po files is converted into es_ES.json files). These .json files are read by Icestudio during the start up (only the file corresponding to the current selected language)

The compilation from .po to .json can be done by the developers using the command:

npm run compiletext

Getting started

Collections

  • Default: Icestudio Default Collection

Stable

Development

  • IceBoards: blocks and examples for the diferent FPGA boards
  • IceComp: Comparators
  • IceArith: Integer arithmetics
  • IceCounter: Counters
  • IceSignals: 1-bit signal managment
  • IcePLL: PLLs
  • IceLEDOscope: Measuring signals
  • IceLEDs: Displaying on LEDs
  • IceHearts: Timming signal generation
  • IceInputs: 1-bit inputs
  • IceRok: Block probes for Icestudio => Sigrok integration (with Pulseview GUI)
  • IceMachines: Working with Machines (simple state machines with a standar interface)
  • IceSerial: Serial Asynchronous communications
  • IceMem: Working with Memories
  • IceMeasure: Measuring cycles and time in your circuits, very easily
  • IceStack: Working with stacks
  • IceFlash: Read from spi serial flash memories
  • IceBus: Accesing and sharing simple buses
  • IceLCD: Components and controllers for LCDs
  • IceUnary: Working with unary numbers
  • IceCrystal: Drive displays from Open Source FPGAs
  • ice-chips-verilog: IceChips is a library of all common discrete logic devices in Verilog
  • ArithmeticBlocks: FPGA signed and unsigned integer operations, 16, 24 and 32 bits, + - * / sqrt min max compare etc.
  • iceSynth: Audio synthesis
  • icebreaker: Blocks and examples for the icebreaker OpenFPGA board
  • Jedi: blocks of the FPGA Jedi hardware Academy
  • LOVE-FPGA: Hardware elements and examples for the LOVE-FPGA project (Linking Of Virtual Electronics to FPGAs)
  • Stdio: Standard Input-Output in different devices
  • CT11: Ejemplos del cuaderno ténico 11: Señales del sistema y Medición con el LEDOscopio
  • Generic: Icestudio Generic Collection
  • Logic: Icestudio Logic Collection
  • IceInterface: Serial, SPI, I2C... (TODO)

Testbenches

Developers

Contribute

HELP

Release history

Clone this wiki locally