Skip to content

Commit

Permalink
First translation sync (#31)
Browse files Browse the repository at this point in the history
- Added translation files for es-es, ja, ko, nl, pl, pt-BR, and zh-TW
- Added update-translation scripts for sim and extension

Limitations:

- Japanese lacks translation for the more recent docs
- We only just corrected the source text for the title of the certainty block help file so that's not yet translated
  • Loading branch information
microbit-grace authored Jan 3, 2025
1 parent 56ba5e6 commit 217a1a6
Show file tree
Hide file tree
Showing 69 changed files with 1,631 additions and 32 deletions.
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,18 @@ pxt.json file:
}
```

## Translations

We manage translations via Crowdin.

#### Incorporting changes from Crowdin

Use [update-translations.sh](./bin/update-translations.sh).

Build and download the Crowdin zip and unzip it to a temporary location. Note the zip itself doesn't contain a top-level directory, so on Mac/Linux use e.g. `unzip -d ~/tmp/trans microbit-org.zip`. Run the script passing the directory containing the unzipped translations.

The script will update the extension UI and sim strings.

## License

This software made available under the MIT open source license.
Expand Down
15 changes: 15 additions & 0 deletions _locales/es-ES/machine-learning-jsdoc-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"ml.getCertainty": "Obtiene la certeza de un evento ML en porcentaje (0 a 100).",
"ml.getCertainty|param|event": "una de las acciones con las que el modelo de aprendizaje automático fue entrenado",
"ml.isDetected": "Comprueba si se ha detectado un evento ML.",
"ml.isDetected|param|event": "una de las acciones con las que el modelo de aprendizaje automático fue entrenado",
"ml.onStart": "Hace algo cuando se detecta un evento ML.",
"ml.onStart|param|body": "código a ejecutar",
"ml.onStart|param|event": "una de las acciones con las que el modelo de aprendizaje automático fue entrenado",
"ml.onStop": "Hace algo cuando ya no se detecta un evento ML.",
"ml.onStopDetailed": "Hace algo cuando ya no se detecta un evento ML.",
"ml.onStopDetailed|param|body": "código a ejecutar",
"ml.onStopDetailed|param|event": "una de las acciones con las que el modelo de aprendizaje automático fue entrenado",
"ml.onStop|param|body": "código a ejecutar",
"ml.onStop|param|event": "una de las acciones con las que el modelo de aprendizaje automático fue entrenado"
}
12 changes: 12 additions & 0 deletions _locales/es-ES/machine-learning-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"ml.event.Unknown|block": "desconocido",
"ml.getCertainty|block": "certeza (\\%) ML $event",
"ml.isDetected|block": "se ha detectado ML $event",
"ml.onStart|block": "al iniciar ML $event",
"ml.onStopDetailed|block": "en ML $event parada $duration (ms)",
"ml.onStop|block": "en parada ML $event ",
"ml|block": "Aprendizaje Automático",
"{id:category}Ml": "Ml",
"{id:category}MlEvent": "MlEvent",
"{id:group}micro:bit (V2)": "micro:bit (V2)"
}
15 changes: 15 additions & 0 deletions _locales/ja/machine-learning-jsdoc-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"ml.getCertainty": "ML イベントの確実性をパーセント (0 ~ 100) で取得します。",
"ml.getCertainty|param|event": "機械学習モデルが訓練された動きの1つ",
"ml.isDetected": "MLイベントが現在検出されたかのテスト",
"ml.isDetected|param|event": "機械学習モデルが訓練された動きの1つ",
"ml.onStart": "MLイベントが検出されたときに何かを行います。",
"ml.onStart|param|body": "実行するプログラム",
"ml.onStart|param|event": "機械学習モデルが訓練された動きの1つ",
"ml.onStop": "MLイベントが検出されなくなったときに何かを行います。",
"ml.onStopDetailed": "MLイベントが検出されなくなったときに何かを行います。",
"ml.onStopDetailed|param|body": "実行するプログラム",
"ml.onStopDetailed|param|event": "機械学習モデルが訓練された動きの1つ",
"ml.onStop|param|body": "実行するプログラム",
"ml.onStop|param|event": "機械学習モデルが訓練された動きの1つ"
}
12 changes: 12 additions & 0 deletions _locales/ja/machine-learning-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"ml.event.Unknown|block": "不明",
"ml.getCertainty|block": "確実性(\\%) ML $event",
"ml.isDetected|block": "ML が $event を検出したとき",
"ml.onStart|block": "ML の $event が開始したとき",
"ml.onStopDetailed|block": "ML $event を $duration (ms)停止",
"ml.onStop|block": "ML $event が停止したとき",
"ml|block": "機械学習",
"{id:category}Ml": "Ml",
"{id:category}MlEvent": "MlEvent",
"{id:group}micro:bit (V2)": "micro:bit (V2)"
}
15 changes: 15 additions & 0 deletions _locales/ko/machine-learning-jsdoc-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"ml.getCertainty": "ML 이벤트의 확실성을 백분율(0~100)로 표시합니다.",
"ml.getCertainty|param|event": "기계 학습 모델이 학습한 행동 중 하나",
"ml.isDetected": "ML 이벤트가 현재 감지되는지 테스트합니다.",
"ml.isDetected|param|event": "기계 학습 모델이 학습한 행동 중 하나",
"ml.onStart": "ML 이벤트가 감지되면 무언가를 합니다.",
"ml.onStart|param|body": "실행할 코드",
"ml.onStart|param|event": "기계 학습 모델이 학습한 행동 중 하나",
"ml.onStop": "ML 이벤트가 더 이상 감지되지 않으면 무언가를 합니다.",
"ml.onStopDetailed": "ML 이벤트가 더 이상 감지되지 않으면 무언가를 합니다.",
"ml.onStopDetailed|param|body": "실행할 코드",
"ml.onStopDetailed|param|event": "기계 학습 모델이 학습한 행동 중 하나",
"ml.onStop|param|body": "실행할 코드",
"ml.onStop|param|event": "기계 학습 모델이 학습한 행동 중 하나"
}
12 changes: 12 additions & 0 deletions _locales/ko/machine-learning-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"ml.event.Unknown|block": "알 수 없음",
"ml.getCertainty|block": "확실성 (\\%) ML $event",
"ml.isDetected|block": "ML $event가 감지되었나요?",
"ml.onStart|block": "ML $event 시작 시",
"ml.onStopDetailed|block": "ML $event 중지 시 $duration(ms)",
"ml.onStop|block": "ML $event 중지 시",
"ml|block": "기계 학습",
"{id:category}Ml": "Ml",
"{id:category}MlEvent": "MlEvent",
"{id:group}micro:bit (V2)": "micro:bit (V2)"
}
15 changes: 15 additions & 0 deletions _locales/nl/machine-learning-jsdoc-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"ml.getCertainty": "Verkrijg de zekerheid van een ML-evenement in procenten (0 tot 100).",
"ml.getCertainty|param|event": "een van de acties waar het machine-learningmodel op is getraind",
"ml.isDetected": "Test of een ML-gebeurtenis momenteel is gedetecteerd.",
"ml.isDetected|param|event": "een van de acties waar het machine-learningmodel op is getraind",
"ml.onStart": "Doe iets wanneer een ML-gebeurtenis is gedetecteerd.",
"ml.onStart|param|body": "code om uit te voeren",
"ml.onStart|param|event": "een van de acties waar het machine-learningmodel op is getraind",
"ml.onStop": "Doe iets wanneer een ML-gebeurtenis niet meer wordt gedetecteerd.",
"ml.onStopDetailed": "Doe iets wanneer een ML-gebeurtenis niet meer wordt gedetecteerd.",
"ml.onStopDetailed|param|body": "code om uit te voeren",
"ml.onStopDetailed|param|event": "een van de acties waar het machine-learningmodel op is getraind",
"ml.onStop|param|body": "code om uit te voeren",
"ml.onStop|param|event": "een van de acties waar het machine-learningmodel op is getraind"
}
12 changes: 12 additions & 0 deletions _locales/nl/machine-learning-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"ml.event.Unknown|block": "onbekend",
"ml.getCertainty|block": "zekerheid (\\%) ML $event",
"ml.isDetected|block": "is ML $event gedetecteerd",
"ml.onStart|block": "op ML $event start",
"ml.onStopDetailed|block": "op ML $event stop $duration (ms)",
"ml.onStop|block": "op ML $event stop",
"ml|block": "Machine Learning",
"{id:category}Ml": "Ml",
"{id:category}MlEvent": "MlEvent",
"{id:group}micro:bit (V2)": "micro:bit (V2)"
}
15 changes: 15 additions & 0 deletions _locales/pl/machine-learning-jsdoc-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"ml.getCertainty": "Uzyskaj pewność zdarzenia ML w procentach (od 0 do 100).",
"ml.getCertainty|param|event": "jedna z czynności, na które został wytrenowany model nauczania maszynowego",
"ml.isDetected": "Testuje, czy zdarzenie ML jest obecnie wykryte.",
"ml.isDetected|param|event": "jedna z czynności, na które został wytrenowany model nauczania maszynowego",
"ml.onStart": "Zrób coś, gdy wykryto zdarzenie ML",
"ml.onStart|param|body": "kod do wykonania",
"ml.onStart|param|event": "jedna z czynności, na które został wytrenowany model nauczania maszynowego",
"ml.onStop": "Zrób coś, gdy zdarzenie ML nie jest już wykrywane.",
"ml.onStopDetailed": "Zrób coś, gdy zdarzenie ML nie jest już wykrywane.",
"ml.onStopDetailed|param|body": "kod do wykonania",
"ml.onStopDetailed|param|event": "jedna z czynności, na które został wytrenowany model nauczania maszynowego",
"ml.onStop|param|body": "kod do wykonania",
"ml.onStop|param|event": "jedna z czynności, na które został wytrenowany model nauczania maszynowego"
}
12 changes: 12 additions & 0 deletions _locales/pl/machine-learning-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"ml.event.Unknown|block": "nieznany",
"ml.getCertainty|block": "pewność (\\%) ML $event",
"ml.isDetected|block": "czy wykryto ML $event",
"ml.onStart|block": "przy starcie ML $event",
"ml.onStopDetailed|block": "przy ML $event stop $duration (ms)",
"ml.onStop|block": "przy zatrzymaniu ML $event",
"ml|block": "Uczenie maszynowe",
"{id:category}Ml": "Ml",
"{id:category}MlEvent": "MlEvent",
"{id:group}micro:bit (V2)": "micro:bit (V2)"
}
15 changes: 15 additions & 0 deletions _locales/pt-BR/machine-learning-jsdoc-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"ml.getCertainty": "Obtenha a probabilidade de um evento de ML em porcentagem (0 a 100).",
"ml.getCertainty|param|event": "uma das ações em que o modelo de aprendizado de máquina foi treinado",
"ml.isDetected": "Testa se um evento de ML está sendo detectado no momento.",
"ml.isDetected|param|event": "uma das ações em que o modelo de aprendizado de máquina foi treinado",
"ml.onStart": "Faz algo quando um evento de ML é detectado.",
"ml.onStart|param|body": "código a ser executado",
"ml.onStart|param|event": "uma das ações em que o modelo de aprendizado de máquina foi treinado",
"ml.onStop": "Faz algo quando um evento de ML não for mais detectado.",
"ml.onStopDetailed": "Faz algo quando um evento de ML não for mais detectado.",
"ml.onStopDetailed|param|body": "código a ser executado",
"ml.onStopDetailed|param|event": "uma das ações em que o modelo de aprendizado de máquina foi treinado",
"ml.onStop|param|body": "código a ser executado",
"ml.onStop|param|event": "uma das ações em que o modelo de aprendizado de máquina foi treinado"
}
12 changes: 12 additions & 0 deletions _locales/pt-BR/machine-learning-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"ml.event.Unknown|block": "desconhecido",
"ml.getCertainty|block": "certeza (\\%) ML $event",
"ml.isDetected|block": "o ML $event foi detectado",
"ml.onStart|block": "no início do ML $event",
"ml.onStopDetailed|block": "no término ML $event $duration (ms)",
"ml.onStop|block": "o ML $event parou",
"ml|block": "Aprendizado de Máquina (ML)",
"{id:category}Ml": "Ml",
"{id:category}MlEvent": "MlEvent",
"{id:group}micro:bit (V2)": "micro:bit (V2)"
}
15 changes: 15 additions & 0 deletions _locales/zh-TW/machine-learning-jsdoc-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"ml.getCertainty": "以百分比(0 至 100)獲取機器學習事件的確定性。",
"ml.getCertainty|param|event": "機器學習模型所受訓練的動作其中之一",
"ml.isDetected": "測試目前是否偵測到機器學習事件發生。",
"ml.isDetected|param|event": "機器學習模型所受訓練的動作其中之一",
"ml.onStart": "當偵測到機器學習事件時執行某些操作。\n\n",
"ml.onStart|param|body": "程式碼執行",
"ml.onStart|param|event": "機器學習模型所受訓練的動作其中之一",
"ml.onStop": "當不再偵測到機器學習事件時執行某些操作。",
"ml.onStopDetailed": "當不再偵測到機器學習事件時執行某些操作。",
"ml.onStopDetailed|param|body": "程式碼執行",
"ml.onStopDetailed|param|event": "機器學習模型所受訓練的動作其中之一",
"ml.onStop|param|body": "程式碼執行",
"ml.onStop|param|event": "機器學習模型所受訓練的動作其中之一"
}
12 changes: 12 additions & 0 deletions _locales/zh-TW/machine-learning-strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"ml.event.Unknown|block": "未知",
"ml.getCertainty|block": "確定性 (\\%) ML $event",
"ml.isDetected|block": "是否偵測到 ML $event",
"ml.onStart|block": "ML $event 開始時",
"ml.onStopDetailed|block": "ML $event 停止時 $duration(毫秒)",
"ml.onStop|block": "ML $event 停止時",
"ml|block": "機器學習",
"{id:category}Ml": "Ml",
"{id:category}MlEvent": "MlEvent",
"{id:group}micro:bit (V2)": "micro:bit (V2)"
}
36 changes: 36 additions & 0 deletions bin/update-translations.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/usr/bin/env bash
#
# Partial automation of updating sim and extension translations.
#
# Updates sim and extension translations.
#
# New languages require code change below and in:
# 1. Sim to add language in simx/src/messages/TranslationProvider.tsx.
# 2. Extension config to include the file path in pxt.json.
#

set -euxo pipefail

if [ $# -eq 0 ]; then
echo Missing argument to extracted Crowdin ZIP >&1
exit 1
fi

languages="es-ES ja ko nl pl pt-BR zh-TW"

for language in $languages; do
lower="${language,,}"
prefix="${1}/${language}"
cp "${prefix}/ui.en.json" "simx/lang/ui.${lower}.json"

mkdir -p "_locales/${language}"
cp "${prefix}/machine-learning-jsdoc-strings.json" "_locales/${language}"
cp "${prefix}/machine-learning-strings.json" "_locales/${language}"

mkdir -p "docs/_locales/${language}"
cp -r "${prefix}/docs/." "docs/_locales/${language}"
done

cd simx
npm run i18n:compile
cd -
32 changes: 32 additions & 0 deletions docs/_locales/es-ES/ml_get_event_certainty.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# certainty (%) ML

Obtiene el último valor de certeza de una acción ML.

```sig
ml.getCertainty(ml.event.Unknown)
```

El modelo ML se ejecuta varias veces por segundo y calcula un valor de certeza para cada acción. La acción estimada es la acción con mayor certeza. Una acción no puede ser la acción estimada cuando su certeza está por debajo del punto de reconocimiento. Es posible que algunos programas necesiten utilizar directamente los valores de certeza, por ejemplo para visualizarlos o registrarlos. La mayoría de los programas pueden utilizar la acción estimada en lugar de los valores de certeza.

## Parámetros

- **evento**: una de las acciones en las que se ha entrenado el modelo de aprendizaje automático.

## Devuelve

- un porcentaje como [número](/types/number) de 0 a 100, que representa la certeza del modelo ML de que ésta es la acción que se está realizando. La certeza para "unknown" es siempre 0.

## Ejemplo

Este ejemplo muestra la certeza del modelo ML, en porcentaje, de que la acción actual es "aplaudiendo" cada segundo.

```blocks
loops.everyInterval(1000, function () {
basic.showNumber(ml.getCertainty(ml.event.Clapping))
})
```

```package
machine-learning-help-stubs=github:microbit-foundation/pxt-microbit-ml-help-stubs#v0.0.1
machine-learning=github:microbit-foundation/pxt-microbit-ml#v1.0.2
```
36 changes: 36 additions & 0 deletions docs/_locales/es-ES/ml_is_event_detected.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# is ML detected

Comprueba si una acción ML es la acción estimada.

```sig
ml.isDetected(ml.event.Unknown)
```

El modelo ML actualiza su acción estimada varias veces por segundo. Esta función devuelve "cierto" si la acción elegida está actualmente estimada. Utiliza el valor booleano para tomar decisiones lógicas en tu programa.

Algunos programas serán más fáciles de escribir utilizando los manejadores de eventos «on ML start» y «on ML stop» en su lugar.

## Parámetros

- **evento**: una de las acciones en las que se ha entrenado el modelo de aprendizaje automático. El valor especial `unknown` representa el caso en que ninguna acción tiene una certeza superior al punto de reconocimiento.

## Devuelve

- un valor [booleano](/types/boolean) que es `cierto` si la acción ML es la acción estimada, `falso` si la acción ML no es la acción estimada.

## Ejemplo

Este ejemplo mostrará un icono de tic en la pantalla LED si la acción estimada es `aplaudiendo` en el momento en que se comprueba la sentencia condicional.

```blocks
basic.forever(function () {
if (ml.isDetected(ml.event.Clapping)) {
basic.showIcon(IconNames.Yes)
}
})
```

```package
machine-learning-help-stubs=github:microbit-foundation/pxt-microbit-ml-help-stubs#v0.0.1
machine-learning=github:microbit-foundation/pxt-microbit-ml#v1.0.2
```
29 changes: 29 additions & 0 deletions docs/_locales/es-ES/ml_on_event_start.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# on ML start

Inicia un [manejador de eventos](/reference/event-handler) (parte del programa que se ejecutará cuando algo suceda). Este manejador funciona cuando la acción estimada del modelo ML cambia a la acción que tú seleccionas.

```sig
ml.onStart(ml.event.Unknown, function () {
})
```

El modelo ML actualiza su acción estimada varias veces por segundo, pero este controlador de eventos solo se ejecuta cuando cambia la acción estimada.

## Parámetros

- **evento**: una de las acciones en las que se ha entrenado el modelo de aprendizaje automático. El valor especial `unknown` representa el caso en que ninguna acción tiene una certeza superior al punto de reconocimiento.

## Ejemplo

Este ejemplo reproduce una melodía musical de fondo cuando la acción «aplaudir» tiene una certeza superior al punto de reconocimiento.

```blocks
ml.onStart(ml.event.Clapping, function () {
music._playDefaultBackground(music.builtInPlayableMelody(Melodies.Dadadadum), music.PlaybackMode.InBackground)
})
```

```package
machine-learning-help-stubs=github:microbit-foundation/pxt-microbit-ml-help-stubs#v0.0.1
machine-learning=github:microbit-foundation/pxt-microbit-ml#v1.0.2
```
Loading

0 comments on commit 217a1a6

Please sign in to comment.