From dc6ccb69002b7e2bb19f27bf5099a15ee8a21115 Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Thu, 19 Jan 2023 15:57:50 -0500 Subject: [PATCH 01/18] Initial work on i18n --- i18n/generate.js | 0 src/i18n.ts | 11 +++++++++++ src/types/globals.d.ts | 1 + src/util/LocalizedString.ts | 35 +++++++++++++++++++++++++++++++++++ 4 files changed, 47 insertions(+) create mode 100644 i18n/generate.js create mode 100644 src/i18n.ts diff --git a/i18n/generate.js b/i18n/generate.js new file mode 100644 index 00000000..e69de29b diff --git a/src/i18n.ts b/src/i18n.ts new file mode 100644 index 00000000..733932b6 --- /dev/null +++ b/src/i18n.ts @@ -0,0 +1,11 @@ +import Dict from '../Dict'; +import LocalizedString from '../util/LocalizedString'; + +const I18N = SIMULATOR_I18N as Dict; + +export default (id: string) => { + const localizedString = I18N[id] || { + [LocalizedString.EN_US]: id, + }; + return (language: LocalizedString.Language) => LocalizedString.lookup(localizedString, language); +}; \ No newline at end of file diff --git a/src/types/globals.d.ts b/src/types/globals.d.ts index a181a889..17e5227d 100644 --- a/src/types/globals.d.ts +++ b/src/types/globals.d.ts @@ -4,3 +4,4 @@ declare const SIMULATOR_GIT_HASH: string; declare const SIMULATOR_HAS_CPYTHON: boolean; declare const SIMULATOR_HAS_AMMO: boolean; declare const SIMULATOR_LIBKIPR_C_DOCUMENTATION: unknown | undefined; +declare const SIMULATOR_I18N: unknown | undefined; diff --git a/src/util/LocalizedString.ts b/src/util/LocalizedString.ts index 6dcc5b3e..2771e0e8 100644 --- a/src/util/LocalizedString.ts +++ b/src/util/LocalizedString.ts @@ -72,6 +72,41 @@ namespace LocalizedString { // Urdu export const UR_PK = 'ur-PK'; + export type Language = ( + typeof EN_US | typeof EN_UK | + typeof ZH_CN | typeof ZH_TW | + typeof JA_JP | + typeof KO_KR | + typeof HI_IN | + typeof ES_ES | typeof ES_MX | + typeof FR_FR | + typeof DE_DE | + typeof IT_IT | + typeof PT_BR | typeof PT_PT | + typeof RU_RU | + typeof AR_SA | + typeof TR_TR | + typeof PL_PL | + typeof NL_NL | + typeof SV_SE | + typeof DA_DK | + typeof NO_NO | + typeof FI_FI | + typeof HU_HU | + typeof CS_CZ | + typeof SK_SK | + typeof RO_RO | + typeof BG_BG | + typeof EL_GR | + typeof HE_IL | + typeof TH_TH | + typeof VI_VN | + typeof ID_ID | + typeof MS_MY | + typeof FA_IR | + typeof UR_PK + ); + export const FALLBACKS: { [locale: string]: string[] } = { [EN_US]: [], [EN_UK]: [EN_US], From aee7053325534a11dbd935a82b6f629147724aa4 Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Fri, 20 Jan 2023 00:13:13 -0500 Subject: [PATCH 02/18] Begin work on translation --- README.md | 23 +++++++++++ i18n/generate.js | 0 i18n/generate.ts | 98 +++++++++++++++++++++++++++++++++++++++++++++ i18n/i18n.json | 42 +++++++++++++++++++ i18n/tsconfig.json | 7 ++++ package.json | 3 +- src/Sim.tsx | 6 ++- src/i18n.ts | 11 ++--- src/scenes/jbc5.ts | 6 ++- src/scenes/jbc5b.ts | 6 ++- src/scenes/jbc5c.ts | 6 ++- tsconfig.json | 6 ++- 12 files changed, 198 insertions(+), 16 deletions(-) delete mode 100644 i18n/generate.js create mode 100644 i18n/generate.ts create mode 100644 i18n/i18n.json create mode 100644 i18n/tsconfig.json diff --git a/README.md b/README.md index 7415858b..037e7a96 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,29 @@ The project is set up with [ESLint](https://eslint.org/) for JavaScript/TypeScri To ease development, we highly recommend enabling ESLint within your editor so you can see issues in real time. If you're using Visual Studio Code, you can use the [VS Code ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint). For other editors, see [available ESLint integrations](https://eslint.org/docs/user-guide/integrations). +## Internationalization (i18n) + +Simulator uses a mechanism similar to Qt's i18n to automatically create a `i18n.json` file located in `/i18n/i18n.json`. The source files are scanned for imports of `@i18n`, and uses of the default exported function (`tr` by convention) are detected and inserted into the file. This file is then injected into the client via webpack's `DefinePlugin` (see `configs/webpack/common.js` for details). The `tr` function reads this object at runtime to make translations available. + +To update this file, run `yarn run generate-i18n`. While the generation script *should* preserve your work-in-progress, it is recommended to commit, stash, or otherwise backup the `i18n.json` file prior to running this script. + +The format of the `i18n.json` is as follows: +```json +{ + "TRANSLATION_ID_1": { + "descriptions": [ + "Description 1 from the first tr(), if available", + "Description 2 from the second tr() using the same id, if available" + ], + "translations": { + "en-US": "See `src/util/LocalizedString.ts` for a list of available language identifiers", + "ja-JP": "利用可能な言語識別子のリストについては、「src/util/LocalizedString.ts」を参照してください" + } + }, + "..." +} +``` + # Building image The repo includes a `Dockerfile` for building a Docker image of the simulator: diff --git a/i18n/generate.js b/i18n/generate.js deleted file mode 100644 index e69de29b..00000000 diff --git a/i18n/generate.ts b/i18n/generate.ts new file mode 100644 index 00000000..64a8254e --- /dev/null +++ b/i18n/generate.ts @@ -0,0 +1,98 @@ +import * as fs from 'fs'; +import * as path from 'path'; +import * as typescript from 'typescript'; + +const tsConfigPath = path.resolve(__dirname, '..', 'tsconfig.json'); +const tsConfig = typescript.readConfigFile(tsConfigPath, (path) => fs.readFileSync(path, 'utf8')); + +const compilerOptions = tsConfig.config.compilerOptions as typescript.CompilerOptions; + +// TypeScript complains about moduleResolution being "node". +// We don't need it, so we can just delete it. +delete compilerOptions.moduleResolution; + +const walkDir = (dir: string, callback: (file: string) => void) => { + const files = fs.readdirSync(dir); + for (const file of files) { + const filePath = path.resolve(dir, file); + const stat = fs.statSync(filePath); + if (stat.isDirectory()) { + walkDir(filePath, callback); + } else if (stat.isFile()) { + callback(filePath); + } + } +}; + +const rootNames = []; + +walkDir(path.resolve(__dirname, '..', 'src'), file => { + if (file.endsWith('.tsx') || file.endsWith('.ts')) rootNames.push(file); +}); + +const program = typescript.createProgram({ + rootNames: rootNames, + options: compilerOptions, +}); + +const sourceFiles = program.getSourceFiles(); + +interface Tr { + id: string; + description?: string; +} + +const findTrs = (funcName: string, sourceFile: typescript.SourceFile, node: typescript.Node) => { + let ret: Tr[] = []; + + if (typescript.isCallExpression(node)) { + const expression = node.expression; + if (typescript.isIdentifier(expression)) { + if (expression.text === funcName) { + const id = node.arguments[0]; + if (typescript.isStringLiteral(id)) { + const description = node.arguments[1]; + if (description !== undefined && typescript.isStringLiteral(description)) { + ret.push({ id: id.text, description: description.text }); + } else { + ret.push({ id: id.text }); + } + } + } + } + } + + const children = node.getChildren(sourceFile); + for (const child of children) ret = [...ret, ...findTrs(funcName, sourceFile, child)]; + return ret; +}; + +interface Entry { + descriptions: string[]; + translations: { [key: string]: string }; +} + +const i18nJsonPath = path.resolve(__dirname, 'i18n.json'); + +const existingTrDict = fs.existsSync(i18nJsonPath) ? JSON.parse(fs.readFileSync(i18nJsonPath, 'utf8')) : {} as { [key: string]: Entry }; +const trDict: { [key: string]: Entry } = {}; + +for (const sourceFile of sourceFiles) { + const trs = findTrs('tr', sourceFile, sourceFile); + for (const tr of trs) { + const { id, description } = tr; + if (id in trDict) { + if (description !== undefined) { + trDict[id].descriptions.push(description); + } + } else { + trDict[id] = { + descriptions: description !== undefined ? [description] : [], + translations: existingTrDict[id] !== undefined ? existingTrDict[id].translations : {}, + }; + } + } +} + +// Write the new i18n.json file. +fs.writeFileSync(path.resolve(__dirname, 'i18n.json'), JSON.stringify(trDict, null, 2)); \ No newline at end of file diff --git a/i18n/i18n.json b/i18n/i18n.json new file mode 100644 index 00000000..c6031cda --- /dev/null +++ b/i18n/i18n.json @@ -0,0 +1,42 @@ +{ + "src/scenes/jbc5.ts/JBC_5.name": { + "descriptions": [ + "JBC 5 Name" + ], + "translations": {} + }, + "src/scenes/jbc5.ts/JBC_5.description": { + "descriptions": [ + "JBC 5 Description" + ], + "translations": {} + }, + "src/scenes/jbc5b.ts/JBC_5B.name": { + "descriptions": [ + "JBC 5B Name" + ], + "translations": {} + }, + "src/scenes/jbc5b.ts/JBC_5B.description": { + "descriptions": [ + "JBC 5B Description" + ], + "translations": {} + }, + "src/scenes/jbc5c.ts/JBC_5C.name": { + "descriptions": [ + "JBC 5C Name" + ], + "translations": {} + }, + "src/scenes/jbc5c.ts/JBC_5C.description": { + "descriptions": [ + "JBC 5C Description" + ], + "translations": {} + }, + "test": { + "descriptions": [], + "translations": {} + } +} \ No newline at end of file diff --git a/i18n/tsconfig.json b/i18n/tsconfig.json new file mode 100644 index 00000000..300f0b91 --- /dev/null +++ b/i18n/tsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "target": "ES2017", + "module": "commonjs", + "moduleResolution": "NodeNext" + } +} \ No newline at end of file diff --git a/package.json b/package.json index d28144a4..fd317969 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "test": "env TS_NODE_PROJECT=\"tsconfig.testing.json\" mocha --recursive --extension ts --require ts-node/register test", "start": "yarn run start-dev", "start-dev": "webpack-dev-server --host 0.0.0.0 --config=configs/webpack/dev.js", - "start-prod": "yarn run build && node express.js" + "start-prod": "yarn run build && node express.js", + "generate-i18n": "ts-node i18n/generate.ts" }, "devDependencies": { "@babel/core": "^7.9.0", diff --git a/src/Sim.tsx b/src/Sim.tsx index a0d56704..25eed695 100644 --- a/src/Sim.tsx +++ b/src/Sim.tsx @@ -20,6 +20,7 @@ import Node from './state/State/Scene/Node'; import { Robots } from './state/State'; + let Ammo: unknown; if (SIMULATOR_HAS_AMMO) { // This is on a non-standard path specified in the webpack config. @@ -35,6 +36,9 @@ import ScriptManager from './ScriptManager'; import Geometry from './state/State/Scene/Geometry'; import Camera from './state/State/Scene/Camera'; +import tr from '@i18n'; + +const TEST = tr('test'); export let ACTIVE_SPACE: Space; @@ -164,7 +168,7 @@ export class Space { decoder: { wasmUrl: '/static/draco_wasm_wrapper_gltf.js', wasmBinaryUrl: '/static/draco_decoder_gltf.wasm', - fallbackUrl: '/static/draco_decoder_gltf.js' + fallbackUrl: '/static/draco_decoder_gltf.js', } }; } diff --git a/src/i18n.ts b/src/i18n.ts index 733932b6..2da129ef 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -1,11 +1,8 @@ -import Dict from '../Dict'; -import LocalizedString from '../util/LocalizedString'; +import Dict from './Dict'; +import LocalizedString from './util/LocalizedString'; const I18N = SIMULATOR_I18N as Dict; -export default (id: string) => { - const localizedString = I18N[id] || { - [LocalizedString.EN_US]: id, - }; - return (language: LocalizedString.Language) => LocalizedString.lookup(localizedString, language); +export default (id: string, description?: string) => I18N[id] || { + [LocalizedString.EN_US]: id, }; \ No newline at end of file diff --git a/src/scenes/jbc5.ts b/src/scenes/jbc5.ts index ef37e846..faf64abc 100644 --- a/src/scenes/jbc5.ts +++ b/src/scenes/jbc5.ts @@ -3,10 +3,12 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_5: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 5' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 5: Dance Party' }, + name: tr('src/scenes/jbc5.ts/JBC_5.name', 'JBC 5 Name'), + description: tr('src/scenes/jbc5.ts/JBC_5.description', 'JBC 5 Description') }; \ No newline at end of file diff --git a/src/scenes/jbc5b.ts b/src/scenes/jbc5b.ts index 798cbbbe..364af9a2 100644 --- a/src/scenes/jbc5b.ts +++ b/src/scenes/jbc5b.ts @@ -3,10 +3,12 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_5B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 5B' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 5B: Line Dance' }, + name: tr('src/scenes/jbc5b.ts/JBC_5B.name', 'JBC 5B Name'), + description: tr('src/scenes/jbc5b.ts/JBC_5B.description', 'JBC 5B Description') }; \ No newline at end of file diff --git a/src/scenes/jbc5c.ts b/src/scenes/jbc5c.ts index 805fa595..81b457b6 100644 --- a/src/scenes/jbc5c.ts +++ b/src/scenes/jbc5c.ts @@ -3,10 +3,12 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceB } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceB(); export const JBC_5C: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 5C' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 5C: Synchronized Dancing' }, + name: tr('src/scenes/jbc5c.ts/JBC_5C.name', 'JBC 5C Name'), + description: tr('src/scenes/jbc5c.ts/JBC_5C.description', 'JBC 5C Description'), }; \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 84aba17b..87baecd2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,11 @@ "target": "es6", "moduleResolution": "node", "allowSyntheticDefaultImports": true, - "esModuleInterop": true + "esModuleInterop": true, + "baseUrl": "src", + "paths": { + "@i18n": ["i18n"], + } }, "types": [ "babylonjs", From e27d93d2184e3a81c034c97ee6f34f15bd85ae56 Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Fri, 20 Jan 2023 04:57:02 -0500 Subject: [PATCH 03/18] Make all strings in UI translatable --- README.md | 16 +- configs/webpack/common.js | 11 + i18n/.gitignore | 1 + i18n/build.ts | 34 ++ i18n/generate.ts | 83 ++-- i18n/i18n.json | 105 +++-- i18n/po.ts | 10 + i18n/po/ar-SA.po | 387 +++++++++++++++++ i18n/po/bg-BG.po | 387 +++++++++++++++++ i18n/po/cs-CZ.po | 387 +++++++++++++++++ i18n/po/da-DK.po | 387 +++++++++++++++++ i18n/po/de-DE.po | 387 +++++++++++++++++ i18n/po/el-GR.po | 387 +++++++++++++++++ i18n/po/en-UK.po | 387 +++++++++++++++++ i18n/po/en-US.po | 387 +++++++++++++++++ i18n/po/es-ES.po | 387 +++++++++++++++++ i18n/po/es-MX.po | 387 +++++++++++++++++ i18n/po/fa-IR.po | 387 +++++++++++++++++ i18n/po/fi-FI.po | 387 +++++++++++++++++ i18n/po/fr-FR.po | 387 +++++++++++++++++ i18n/po/he-IL.po | 387 +++++++++++++++++ i18n/po/hi-IN.po | 387 +++++++++++++++++ i18n/po/hu-HU.po | 387 +++++++++++++++++ i18n/po/id-ID.po | 387 +++++++++++++++++ i18n/po/it-IT.po | 387 +++++++++++++++++ i18n/po/ja-JP.mo | Bin 0 -> 1200 bytes i18n/po/ja-JP.po | 397 ++++++++++++++++++ i18n/po/ko-KR.po | 387 +++++++++++++++++ i18n/po/ms-MY.po | 387 +++++++++++++++++ i18n/po/nl-NL.po | 387 +++++++++++++++++ i18n/po/no-NO.po | 387 +++++++++++++++++ i18n/po/pl-PL.po | 387 +++++++++++++++++ i18n/po/pt-BR.po | 387 +++++++++++++++++ i18n/po/pt-PT.po | 387 +++++++++++++++++ i18n/po/ro-RO.po | 387 +++++++++++++++++ i18n/po/ru-RU.po | 387 +++++++++++++++++ i18n/po/sk-SK.po | 387 +++++++++++++++++ i18n/po/sv-SE.po | 387 +++++++++++++++++ i18n/po/th-TH.po | 387 +++++++++++++++++ i18n/po/tr-TR.po | 387 +++++++++++++++++ i18n/po/ur-PK.po | 387 +++++++++++++++++ i18n/po/vi-VN.po | 387 +++++++++++++++++ i18n/po/zh-CN.po | 387 +++++++++++++++++ i18n/po/zh-TW.po | 387 +++++++++++++++++ i18n/util.ts | 15 + package.json | 7 +- src/App.tsx | 2 - src/challenges/jbc6c.ts | 42 +- src/components/AboutDialog.tsx | 42 +- src/components/Challenge/EventViewer.tsx | 7 +- src/components/Challenge/LoadingOverlay.tsx | 23 +- src/components/Challenge/Operator.tsx | 15 +- src/components/Challenge/PredicateEditor.tsx | 15 +- src/components/Challenge/index.tsx | 16 +- src/components/ChallengeRoot.tsx | 8 +- src/components/Console/ClearCharm.tsx | 9 +- src/components/Console/index.tsx | 5 +- src/components/DeleteDialog.tsx | 30 +- src/components/Editor/Editor.tsx | 23 +- src/components/Editor/ErrorCharm.tsx | 9 +- src/components/Editor/WarningCharm.tsx | 9 +- src/components/ExtraMenu.tsx | 30 +- src/components/Feedback/SuccessModal.tsx | 30 +- src/components/Feedback/index.tsx | 50 ++- src/components/Info/Info.tsx | 46 +- src/components/Layout/LayoutPicker.tsx | 30 +- src/components/Layout/OverlayLayout.tsx | 21 +- src/components/Layout/SideLayout.tsx | 31 +- src/components/Loading.tsx | 25 +- src/components/MainMenu.tsx | 31 +- src/components/NewSceneDialog.tsx | 28 +- src/components/OpenSceneDialog.tsx | 40 +- src/components/Root.tsx | 8 +- src/components/SaveAsSceneDialog.tsx | 30 +- src/components/SceneErrorDialog.tsx | 32 +- src/components/SceneSettings.tsx | 42 +- src/components/SceneSettingsDialog.tsx | 31 +- src/components/SettingsDialog.tsx | 113 ++++- src/components/SimMenu.tsx | 38 +- src/components/SimulatorArea.tsx | 35 +- src/components/ValueEdit/index.tsx | 68 +-- src/components/World/AddNodeDialog.tsx | 23 +- src/components/World/AddScriptDialog.tsx | 23 +- src/components/World/NodeSettings.tsx | 360 ++++++++-------- src/components/World/NodeSettingsDialog.tsx | 19 +- src/components/World/SceneMenu.tsx | 29 +- src/components/World/ScriptSettings.tsx | 21 +- src/components/World/ScriptSettingsDialog.tsx | 23 +- src/components/World/index.tsx | 38 +- src/i18n.ts | 8 +- src/pages/Dashboard.tsx | 23 +- src/pages/Tutorials.tsx | 25 +- src/pages/WidgetTest.tsx | 92 ---- src/pages/interfaces/tutorial.interface.ts | 6 +- src/pages/tutorialList.ts | 18 +- src/robots/demobot.ts | 6 +- src/scenes/jbc1.ts | 6 +- src/scenes/jbc10.ts | 6 +- src/scenes/jbc10b.ts | 6 +- src/scenes/jbc12.ts | 6 +- src/scenes/jbc13.ts | 6 +- src/scenes/jbc15b.ts | 6 +- src/scenes/jbc17.ts | 6 +- src/scenes/jbc17b.ts | 6 +- src/scenes/jbc19.ts | 8 +- src/scenes/jbc2.ts | 6 +- src/scenes/jbc20.ts | 8 +- src/scenes/jbc21.ts | 6 +- src/scenes/jbc22.ts | 6 +- src/scenes/jbc2b.ts | 6 +- src/scenes/jbc2c.ts | 6 +- src/scenes/jbc2d.ts | 6 +- src/scenes/jbc3.ts | 6 +- src/scenes/jbc3b.ts | 6 +- src/scenes/jbc3c.ts | 6 +- src/scenes/jbc4.ts | 6 +- src/scenes/jbc4b.ts | 6 +- src/scenes/jbc5.ts | 5 +- src/scenes/jbc5b.ts | 4 +- src/scenes/jbc5c.ts | 4 +- src/scenes/jbc6.ts | 6 +- src/scenes/jbc6b.ts | 6 +- src/scenes/jbc6c.ts | 14 +- src/scenes/jbc7.ts | 6 +- src/scenes/jbc7b.ts | 6 +- src/scenes/jbc8.ts | 6 +- src/scenes/jbc8b.ts | 6 +- src/scenes/jbc9.ts | 6 +- src/scenes/jbc9b.ts | 6 +- src/scenes/jbcBase.ts | 28 +- src/scenes/jbcSandboxA.ts | 14 +- src/scenes/jbcSandboxB.ts | 6 +- src/scenes/scriptPlayground.ts | 12 +- src/state/State/index.ts | 3 + src/state/index.ts | 4 +- src/state/reducer/i18n.ts | 26 ++ src/state/reducer/index.ts | 1 + src/util/LocalizedString.ts | 78 ++++ yarn.lock | 81 +++- 139 files changed, 15567 insertions(+), 843 deletions(-) create mode 100644 i18n/.gitignore create mode 100644 i18n/build.ts create mode 100644 i18n/po.ts create mode 100644 i18n/po/ar-SA.po create mode 100644 i18n/po/bg-BG.po create mode 100644 i18n/po/cs-CZ.po create mode 100644 i18n/po/da-DK.po create mode 100644 i18n/po/de-DE.po create mode 100644 i18n/po/el-GR.po create mode 100644 i18n/po/en-UK.po create mode 100644 i18n/po/en-US.po create mode 100644 i18n/po/es-ES.po create mode 100644 i18n/po/es-MX.po create mode 100644 i18n/po/fa-IR.po create mode 100644 i18n/po/fi-FI.po create mode 100644 i18n/po/fr-FR.po create mode 100644 i18n/po/he-IL.po create mode 100644 i18n/po/hi-IN.po create mode 100644 i18n/po/hu-HU.po create mode 100644 i18n/po/id-ID.po create mode 100644 i18n/po/it-IT.po create mode 100644 i18n/po/ja-JP.mo create mode 100644 i18n/po/ja-JP.po create mode 100644 i18n/po/ko-KR.po create mode 100644 i18n/po/ms-MY.po create mode 100644 i18n/po/nl-NL.po create mode 100644 i18n/po/no-NO.po create mode 100644 i18n/po/pl-PL.po create mode 100644 i18n/po/pt-BR.po create mode 100644 i18n/po/pt-PT.po create mode 100644 i18n/po/ro-RO.po create mode 100644 i18n/po/ru-RU.po create mode 100644 i18n/po/sk-SK.po create mode 100644 i18n/po/sv-SE.po create mode 100644 i18n/po/th-TH.po create mode 100644 i18n/po/tr-TR.po create mode 100644 i18n/po/ur-PK.po create mode 100644 i18n/po/vi-VN.po create mode 100644 i18n/po/zh-CN.po create mode 100644 i18n/po/zh-TW.po create mode 100644 i18n/util.ts delete mode 100644 src/pages/WidgetTest.tsx create mode 100644 src/state/reducer/i18n.ts diff --git a/README.md b/README.md index 037e7a96..bfc3fc40 100644 --- a/README.md +++ b/README.md @@ -121,19 +121,19 @@ To ease development, we highly recommend enabling ESLint within your editor so y ## Internationalization (i18n) -Simulator uses a mechanism similar to Qt's i18n to automatically create a `i18n.json` file located in `/i18n/i18n.json`. The source files are scanned for imports of `@i18n`, and uses of the default exported function (`tr` by convention) are detected and inserted into the file. This file is then injected into the client via webpack's `DefinePlugin` (see `configs/webpack/common.js` for details). The `tr` function reads this object at runtime to make translations available. +Simulator leverages gettext PO files to create a `i18n.json` file located in `/i18n/i18n.json`. The source files are scanned for imports of `@i18n`, and uses of the default exported function (`tr` by convention) are detected and inserted into PO files located in `/i18n/po/`. These PO files are "built" into the JSON file, which is then injected into the frontend via webpack's `DefinePlugin` (see `configs/webpack/common.js` for details). The `tr` function reads this object at runtime to make translations available. -To update this file, run `yarn run generate-i18n`. While the generation script *should* preserve your work-in-progress, it is recommended to commit, stash, or otherwise backup the `i18n.json` file prior to running this script. +To update the PO files, run `yarn run generate-i18n`. While the generation script *should* preserve your work-in-progress, it is recommended to commit, stash, or otherwise backup the PO files prior to running this script. + +To build the PO files into a JSON object suitable for consumption by the frontend, run `yarn run build-i18n`. + +There are many editors available for PO files. We recommend [Poedit](https://poedit.net/). The format of the `i18n.json` is as follows: ```json { - "TRANSLATION_ID_1": { - "descriptions": [ - "Description 1 from the first tr(), if available", - "Description 2 from the second tr() using the same id, if available" - ], - "translations": { + "context1": { + "See `src/util/LocalizedString.ts` for a list of available language identifiers": { "en-US": "See `src/util/LocalizedString.ts` for a list of available language identifiers", "ja-JP": "利用可能な言語識別子のリストについては、「src/util/LocalizedString.ts」を参照してください" } diff --git a/configs/webpack/common.js b/configs/webpack/common.js index 668cc45c..d99dca71 100644 --- a/configs/webpack/common.js +++ b/configs/webpack/common.js @@ -23,6 +23,13 @@ if (dependencies.libkipr_c_documentation) { libkiprCDocumentation = JSON.parse(readFileSync(resolve(dependencies.libkipr_c_documentation))); } +let i18n = {}; +try { + i18n = JSON.parse(readFileSync(resolve(__dirname, '..', '..', 'i18n', 'i18n.json'))); +} catch (e) { + console.log('Failed to read i18n.json'); +} + module.exports = { entry: { @@ -53,6 +60,9 @@ module.exports = { fs: false, path: false, }, + alias: { + '@i18n': resolve(__dirname, '../../src/i18n'), + }, symlinks: false, modules }, @@ -131,6 +141,7 @@ module.exports = { SIMULATOR_HAS_CPYTHON: JSON.stringify(dependencies.cpython !== undefined), SIMULATOR_HAS_AMMO: JSON.stringify(dependencies.ammo !== undefined), SIMULATOR_LIBKIPR_C_DOCUMENTATION: JSON.stringify(libkiprCDocumentation), + SIMULATOR_I18N: JSON.stringify(i18n), }), new NpmDtsPlugin({ root: resolve(__dirname, '../../'), diff --git a/i18n/.gitignore b/i18n/.gitignore new file mode 100644 index 00000000..1dfe4721 --- /dev/null +++ b/i18n/.gitignore @@ -0,0 +1 @@ +i18n.json \ No newline at end of file diff --git a/i18n/build.ts b/i18n/build.ts new file mode 100644 index 00000000..65a837bf --- /dev/null +++ b/i18n/build.ts @@ -0,0 +1,34 @@ +import * as gettextParser from 'gettext-parser'; +import * as fs from 'fs'; +import * as path from 'path'; +import { walkDir } from './util'; +import { PO_PATH } from './po'; +import { I18n } from '../src/i18n'; +import LocalizedString from '../src/util/LocalizedString'; + + +const ret: I18n = {}; + +walkDir(PO_PATH, file => { + if (!file.endsWith('.po')) return; + + const po = gettextParser.po.parse(fs.readFileSync(file, 'utf8')); + const lang = path.basename(file, '.po'); + for (const context in po.translations) { + if (!ret[context]) ret[context] = {}; + + const contextTranslations = po.translations[context]; + for (const enUs in contextTranslations) { + if (enUs.length === 0) continue; + const translation = contextTranslations[enUs]; + if (translation.msgstr[0].length === 0 && lang !== LocalizedString.EN_US) continue; + ret[context][enUs] = { + ...ret[context][enUs] || {}, + [lang]: translation.msgstr[0], + [LocalizedString.EN_US]: enUs, + }; + } + } +}); + +fs.writeFileSync(path.resolve(__dirname, 'i18n.json'), JSON.stringify(ret, null, 2)); \ No newline at end of file diff --git a/i18n/generate.ts b/i18n/generate.ts index 64a8254e..df6add74 100644 --- a/i18n/generate.ts +++ b/i18n/generate.ts @@ -1,6 +1,10 @@ import * as fs from 'fs'; import * as path from 'path'; import * as typescript from 'typescript'; +import * as gettextParser from 'gettext-parser'; +import LocalizedString from '../src/util/LocalizedString'; +import { DEFAULT_PO, PO_PATH } from './po'; +import { walkDir } from './util'; const tsConfigPath = path.resolve(__dirname, '..', 'tsconfig.json'); const tsConfig = typescript.readConfigFile(tsConfigPath, (path) => fs.readFileSync(path, 'utf8')); @@ -11,19 +15,6 @@ const compilerOptions = tsConfig.config.compilerOptions as typescript.CompilerOp // We don't need it, so we can just delete it. delete compilerOptions.moduleResolution; -const walkDir = (dir: string, callback: (file: string) => void) => { - const files = fs.readdirSync(dir); - for (const file of files) { - const filePath = path.resolve(dir, file); - const stat = fs.statSync(filePath); - if (stat.isDirectory()) { - walkDir(filePath, callback); - } else if (stat.isFile()) { - callback(filePath); - } - } -}; - const rootNames = []; walkDir(path.resolve(__dirname, '..', 'src'), file => { @@ -38,7 +29,7 @@ const program = typescript.createProgram({ const sourceFiles = program.getSourceFiles(); interface Tr { - id: string; + enUs: string; description?: string; } @@ -49,13 +40,13 @@ const findTrs = (funcName: string, sourceFile: typescript.SourceFile, node: type const expression = node.expression; if (typescript.isIdentifier(expression)) { if (expression.text === funcName) { - const id = node.arguments[0]; - if (typescript.isStringLiteral(id)) { + const enUs = node.arguments[0]; + if (typescript.isStringLiteral(enUs)) { const description = node.arguments[1]; if (description !== undefined && typescript.isStringLiteral(description)) { - ret.push({ id: id.text, description: description.text }); + ret.push({ enUs: enUs.text, description: description.text }); } else { - ret.push({ id: id.text }); + ret.push({ enUs: enUs.text }); } } } @@ -67,32 +58,50 @@ const findTrs = (funcName: string, sourceFile: typescript.SourceFile, node: type return ret; }; -interface Entry { - descriptions: string[]; - translations: { [key: string]: string }; -} -const i18nJsonPath = path.resolve(__dirname, 'i18n.json'); -const existingTrDict = fs.existsSync(i18nJsonPath) ? JSON.parse(fs.readFileSync(i18nJsonPath, 'utf8')) : {} as { [key: string]: Entry }; -const trDict: { [key: string]: Entry } = {}; +const trDict: { [locale in LocalizedString.Language]?: gettextParser.GetTextTranslations } = {}; + +// Load existing PO files + + +for (const language of LocalizedString.SUPPORTED_LANGUAGES) { + const poPath = path.resolve(PO_PATH, `${language}.po`); + if (!fs.existsSync(poPath)) continue; + if (language === LocalizedString.AR_SA) console.log(fs.readFileSync(poPath, 'utf8')); + const po = gettextParser.po.parse(fs.readFileSync(poPath, 'utf8')); + trDict[language] = po; + if (language === LocalizedString.AR_SA) console.log(`Loaded ${language}.po`, JSON.stringify(po, null, 2)); +} for (const sourceFile of sourceFiles) { const trs = findTrs('tr', sourceFile, sourceFile); - for (const tr of trs) { - const { id, description } = tr; - if (id in trDict) { - if (description !== undefined) { - trDict[id].descriptions.push(description); - } - } else { - trDict[id] = { - descriptions: description !== undefined ? [description] : [], - translations: existingTrDict[id] !== undefined ? existingTrDict[id].translations : {}, + for (const language of LocalizedString.SUPPORTED_LANGUAGES) { + const po: gettextParser.GetTextTranslations = trDict[language] || DEFAULT_PO; + trDict[language] = po; + for (const tr of trs) { + const { enUs, description } = tr; + + const context = description || ''; + if (!po.translations) po.translations = {}; + if (!po.translations[context]) po.translations[context] = {}; + const translation = po.translations[context][enUs]; + if (translation) continue; + + po.translations[context][enUs] = { + msgid: enUs, + msgstr: [''], }; + + console.log(`Added ${enUs} to ${language}.po`); } } } -// Write the new i18n.json file. -fs.writeFileSync(path.resolve(__dirname, 'i18n.json'), JSON.stringify(trDict, null, 2)); \ No newline at end of file +// Write the PO files +for (const language of LocalizedString.SUPPORTED_LANGUAGES) { + const poPath = path.resolve(PO_PATH, `${language}.po`); + const po = trDict[language]; + if (!po) continue; + fs.writeFileSync(poPath, gettextParser.po.compile(po), 'utf8'); +} \ No newline at end of file diff --git a/i18n/i18n.json b/i18n/i18n.json index c6031cda..abb15594 100644 --- a/i18n/i18n.json +++ b/i18n/i18n.json @@ -1,42 +1,69 @@ { - "src/scenes/jbc5.ts/JBC_5.name": { - "descriptions": [ - "JBC 5 Name" - ], - "translations": {} - }, - "src/scenes/jbc5.ts/JBC_5.description": { - "descriptions": [ - "JBC 5 Description" - ], - "translations": {} - }, - "src/scenes/jbc5b.ts/JBC_5B.name": { - "descriptions": [ - "JBC 5B Name" - ], - "translations": {} - }, - "src/scenes/jbc5b.ts/JBC_5B.description": { - "descriptions": [ - "JBC 5B Description" - ], - "translations": {} - }, - "src/scenes/jbc5c.ts/JBC_5C.name": { - "descriptions": [ - "JBC 5C Name" - ], - "translations": {} - }, - "src/scenes/jbc5c.ts/JBC_5C.description": { - "descriptions": [ - "JBC 5C Description" - ], - "translations": {} - }, - "test": { - "descriptions": [], - "translations": {} + "": { + "JBC 5": { + "en-US": "JBC 5" + }, + "Junior Botball Challenge 5: Dance Party": { + "en-US": "Junior Botball Challenge 5: Dance Party" + }, + "JBC 5B": { + "en-US": "JBC 5B" + }, + "Junior Botball Challenge 5B: Line Dance": { + "en-US": "Junior Botball Challenge 5B: Line Dance" + }, + "JBC 5C": { + "en-US": "JBC 5C" + }, + "Junior Botball Challenge 5C: Synchronized Dancing": { + "en-US": "Junior Botball Challenge 5C: Synchronized Dancing" + }, + "test": { + "en-US": "test" + }, + "Settings": { + "en-US": "Settings" + }, + "User Interface": { + "en-US": "User Interface", + "ja-JP": "ユーザーインターフェース" + }, + "Simulation": { + "en-US": "Simulation", + "ja-JP": "シミュレーション" + }, + "Editor": { + "en-US": "Editor", + "ja-JP": "編集者" + }, + "Locale": { + "en-US": "Locale", + "ja-JP": "言語" + }, + "Switch languages": { + "en-US": "Switch languages", + "ja-JP": "言語切り替え" + }, + "Sensor noise": { + "en-US": "Sensor noise" + }, + "Controls whether sensor outputs are affected by random noise": { + "en-US": "Controls whether sensor outputs are affected by random noise", + "ja-JP": "センサー出力がランダムノイズの影響を受けるかどうかを制御する" + }, + "Realistic sensors": { + "en-US": "Realistic sensors" + }, + "Controls whether sensors behave like real-world sensors instead of like ideal sensors. For example, real-world ET sensors are nonlinear": { + "en-US": "Controls whether sensors behave like real-world sensors instead of like ideal sensors. For example, real-world ET sensors are nonlinear", + "ja-JP": "センサーが理想的なセンサーではなく、現実のセンサーのように振る舞うかどうかを制御します。例えば、実世界のETセンサーは非線形である" + }, + "Autocomplete": { + "en-US": "Autocomplete" + }, + "Controls autocompletion of code, brackets, and quotes": { + "en-US": "Controls autocompletion of code, brackets, and quotes", + "ja-JP": "コード、括弧、引用符のオートコンプリートを制御する。" + } } } \ No newline at end of file diff --git a/i18n/po.ts b/i18n/po.ts new file mode 100644 index 00000000..83118555 --- /dev/null +++ b/i18n/po.ts @@ -0,0 +1,10 @@ +import * as path from 'path'; +import * as gettextParser from 'gettext-parser'; + +export const PO_PATH = path.resolve(__dirname, 'po'); + +export const DEFAULT_PO: gettextParser.GetTextTranslations = { + charset: 'utf-8', + headers: {}, + translations: {} +}; \ No newline at end of file diff --git a/i18n/po/ar-SA.po b/i18n/po/ar-SA.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/ar-SA.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/bg-BG.po b/i18n/po/bg-BG.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/bg-BG.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/cs-CZ.po b/i18n/po/cs-CZ.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/cs-CZ.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/da-DK.po b/i18n/po/da-DK.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/da-DK.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/de-DE.po b/i18n/po/de-DE.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/de-DE.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/el-GR.po b/i18n/po/el-GR.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/el-GR.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/en-UK.po b/i18n/po/en-UK.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/en-UK.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/en-US.po b/i18n/po/en-US.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/en-US.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/es-ES.po b/i18n/po/es-ES.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/es-ES.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/es-MX.po b/i18n/po/es-MX.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/es-MX.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/fa-IR.po b/i18n/po/fa-IR.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/fa-IR.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/fi-FI.po b/i18n/po/fi-FI.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/fi-FI.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/fr-FR.po b/i18n/po/fr-FR.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/fr-FR.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/he-IL.po b/i18n/po/he-IL.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/he-IL.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/hi-IN.po b/i18n/po/hi-IN.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/hi-IN.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/hu-HU.po b/i18n/po/hu-HU.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/hu-HU.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/id-ID.po b/i18n/po/id-ID.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/id-ID.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/it-IT.po b/i18n/po/it-IT.po new file mode 100644 index 00000000..1aff8a4b --- /dev/null +++ b/i18n/po/it-IT.po @@ -0,0 +1,387 @@ +msgid "" +msgstr "Content-Type: text/plain\n" + +msgid "JBC 5" +msgstr "" + +msgid "Junior Botball Challenge 5: Dance Party" +msgstr "" + +msgid "JBC 5B" +msgstr "" + +msgid "Junior Botball Challenge 5B: Line Dance" +msgstr "" + +msgid "JBC 5C" +msgstr "" + +msgid "Junior Botball Challenge 5C: Synchronized Dancing" +msgstr "" + +msgid "test" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Editor" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Robot" +msgstr "" + +msgid "Base Scene - Surface A" +msgstr "" + +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface A" +msgstr "" + +msgid "Ground" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Base Scene - Surface B" +msgstr "" + +msgid "" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" +msgstr "" + +msgid "JBC Surface B" +msgstr "" + +msgid "JBC 1" +msgstr "" + +msgid "JBC 2" +msgstr "" + +msgid "Junior Botball Challenge 2: Ring Around the Can" +msgstr "" + +msgid "JBC 2B" +msgstr "" + +msgid "Junior Botball Challenge 2B: Ring Around the Can, Sr." +msgstr "" + +msgid "JBC 2C" +msgstr "" + +msgid "Junior Botball Challenge 2C: Back It Up" +msgstr "" + +msgid "JBC 2D" +msgstr "" + +msgid "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" +msgstr "" + +msgid "JBC 3" +msgstr "" + +msgid "Junior Botball Challenge 3: Precision Parking" +msgstr "" + +msgid "JBC 3B" +msgstr "" + +msgid "Junior Botball Challenge 3B: Parallel Parking" +msgstr "" + +msgid "JBC 3C" +msgstr "" + +msgid "Junior Botball Challenge 3C: Quick Get Away!" +msgstr "" + +msgid "JBC 4" +msgstr "" + +msgid "Junior Botball Challenge 4: Figure Eight" +msgstr "" + +msgid "JBC 4B" +msgstr "" + +msgid "Junior Botball Challenge 4B: Barrel Racing" +msgstr "" + +msgid "JBC 6" +msgstr "" + +msgid "JBC 6B" +msgstr "" + +msgid "JBC 6C" +msgstr "" + +msgid "Circle 2" +msgstr "" + +msgid "Circle 9" +msgstr "" + +msgid "Circle 10" +msgstr "" + +msgid "Mat Surface" +msgstr "" + +msgid "Can %1" +msgstr "" + +msgid "JBC Sandbox A" +msgstr "" + +msgid "" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." +msgstr "" + +msgid "Paper Ream 1" +msgstr "" + +msgid "Paper Ream 2" +msgstr "" + +msgid "JBC Sandbox B" +msgstr "" + +msgid "Junior Botball Challenge Sandbox on Mat B." +msgstr "" + +msgid "Junior Botball Challenge 1: Tag, You're It!" +msgstr "" + +msgid "Junior Botball Challenge 6: Load 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgstr "" + +msgid "Junior Botball Challenge 6C: Empty the Garage" +msgstr "" + +msgid "JBC 7" +msgstr "" + +msgid "Junior Botball Challenge 7: Bulldozer Mania" +msgstr "" + +msgid "JBC 7B" +msgstr "" + +msgid "Junior Botball Challenge 7B: Cover Your Bases" +msgstr "" + +msgid "JBC 8" +msgstr "" + +msgid "Junior Botball Challenge 8: Serpentine" +msgstr "" + +msgid "JBC 8B" +msgstr "" + +msgid "Junior Botball Challenge 8B: Serpentine Jr." +msgstr "" + +msgid "JBC 9" +msgstr "" + +msgid "Junior Botball Challenge 9: Add It Up" +msgstr "" + +msgid "JBC 9B" +msgstr "" + +msgid "Junior Botball Challenge 9B: Balancing Act" +msgstr "" + +msgid "JBC 10" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust" +msgstr "" + +msgid "JBC 10B" +msgstr "" + +msgid "Junior Botball Challenge 10: Solo Joust Jr." +msgstr "" + +msgid "JBC 12" +msgstr "" + +msgid "Junior Botball Challenge 12: Unload 'Em" +msgstr "" + +msgid "JBC 13" +msgstr "" + +msgid "Junior Botball Challenge 13: Clean the Mat" +msgstr "" + +msgid "JBC 15B" +msgstr "" + +msgid "Junior Botball Challenge 15B: Bump Bump" +msgstr "" + +msgid "JBC 17" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line" +msgstr "" + +msgid "JBC 17B" +msgstr "" + +msgid "Junior Botball Challenge 17: Walk the Line II" +msgstr "" + +msgid "JBC 19" +msgstr "" + +msgid "Junior Botball Challenge 19: Mountain Rescue" +msgstr "" + +msgid "Paper Ream" +msgstr "" + +msgid "JBC 20" +msgstr "" + +msgid "Junior Botball Challenge 20: Rescue the Cans" +msgstr "" + +msgid "JBC 21" +msgstr "" + +msgid "Junior Botball Challenge 21: Foot Tall" +msgstr "" + +msgid "JBC 22" +msgstr "" + +msgid "Junior Botball Challenge 22: Stackerz" +msgstr "" + +msgid "Script Playground" +msgstr "" + +msgid "Script tests" +msgstr "" + +msgid "Demobot" +msgstr "" + +msgid "Tutorials" +msgstr "" + +msgid "Learn how to get started with the simulator" +msgstr "" + +msgid "3D Simulator" +msgstr "" + +msgid "A simulator for the Botball demobot." +msgstr "" + +msgid "About" +msgstr "" + +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." +msgstr "" + +msgid "Quick Start" +msgstr "" + +msgid "Navigating in 3D" +msgstr "" + +msgid "Learn the controls for navigating in 3D in the simulator" +msgstr "" + +msgid "Robot Section" +msgstr "" + +msgid "How to use the robot section" +msgstr "" + +msgid "World Section" +msgstr "" + +msgid "Learn how to create and manipulate items and scene in the simulator" +msgstr "" + +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + +msgid "New World" +msgstr "" + +msgid "Create" +msgstr "" + +msgid "Volume" +msgstr "" diff --git a/i18n/po/ja-JP.mo b/i18n/po/ja-JP.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c0964c1bacfde9dcacb6f81db97c047bf6bce65 GIT binary patch literal 1200 zcmZ{hOHUL*5XalMZlW0ve+DK==lJ0%J7Iu;AUh{~nfyiB7im*Hu&Xud1H!n^txcJnLZFU^Z+$ zYzStaAF#c!pRfb4Ez1aL2Q%Pm@LPo%Ou_#JZUldW8^G1e3Hb_c22X-h;018c3PL8q zTcGKEa^;-fd2lQIi{K`(72FPXfRH3>VCI2KRwXAw)>a7VWF|-^no0PO@RSs;Pgy~U ztY~U>xpIU@MUG~L&8uj=WZ6qx`Bjv8HoaUBiu+`tswK}=o=fU;&li%4f@&@(h)GUa zF2}Qq+qC{Fm8ca>)Dw=+|5xnOdY)%jICY&%oJ!7It3^oHu4wzz@qERZZAME{92+_F zZ>#AM^yjV2Y*4kdJe`@(NyhSo=QB;OSeBDIDH^ewRcl-4xb#s{LsNC9tke98V?66HQyih=%vV+hyZaCp zGKtJdS{cromiRTakzG7impV~=;mXjF&q zP!qR*if{Jlpi@V$OfV|y=!uSQ>F~J@KS4VF@^-dwQipfrt_M1}VQo9asPWMcrBhk^zB;|eb|2( void) => { + const files = fs.readdirSync(dir); + for (const file of files) { + const filePath = path.resolve(dir, file); + const stat = fs.statSync(filePath); + if (stat.isDirectory()) { + walkDir(filePath, callback); + } else if (stat.isFile()) { + callback(filePath); + } + } +}; \ No newline at end of file diff --git a/package.json b/package.json index fd317969..e28355a0 100644 --- a/package.json +++ b/package.json @@ -13,18 +13,21 @@ "start": "yarn run start-dev", "start-dev": "webpack-dev-server --host 0.0.0.0 --config=configs/webpack/dev.js", "start-prod": "yarn run build && node express.js", - "generate-i18n": "ts-node i18n/generate.ts" + "generate-i18n": "ts-node i18n/generate.ts", + "build-i18n": "ts-node i18n/build.ts" }, "devDependencies": { "@babel/core": "^7.9.0", "@babel/plugin-syntax-import-meta": "^7.10.4", "@types/chai": "^4.3.3", + "@types/gettext-parser": "^4.0.2", "@types/history": "^4.7.2", "@types/qs": "^6.9.7", "@types/react-dom": "^16.9.5", "@types/react-redux": "^7.1.18", "@types/react-router": "^5.0.0", "@types/redux": "^3.6.0", + "@types/sprintf-js": "^1.1.2", "@types/styletron-engine-atomic": "^1.1.1", "@types/styletron-react": "^5.0.2", "@types/uuid": "^8.3.1", @@ -34,6 +37,7 @@ "chai": "^4.3.6", "eslint": "^7.22.0", "file-loader": "^6.0.0", + "gettext-parser": "^6.0.0", "html-webpack-plugin": "^5.3.1", "mocha": "^10.0.0", "npm-dts-webpack-plugin": "^1.3.12", @@ -81,6 +85,7 @@ "react-router": "^5.0.0", "react-router-dom": "^5.3.0", "redux": "^4.1.0", + "sprintf-js": "^1.1.2", "style-loader": "^2.0.0", "styletron": "^3.0.4", "styletron-engine-atomic": "^1.4.7", diff --git a/src/App.tsx b/src/App.tsx index 133beb27..60ed48b5 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -11,7 +11,6 @@ import db from './db'; import { connect } from 'react-redux'; import { push } from 'connected-react-router'; import LoginPage from './login/LoginPage'; -import WidgetTest from './pages/WidgetTest'; import ChallengeRoot from './components/ChallengeRoot'; import DocumentationRoot from './components/documentation/DocumentationRoot'; import DocumentationWindow from './components/documentation/DocumentationWindow'; @@ -76,7 +75,6 @@ class App extends React.Component { - diff --git a/src/challenges/jbc6c.ts b/src/challenges/jbc6c.ts index d8c9c42d..0a6a8295 100644 --- a/src/challenges/jbc6c.ts +++ b/src/challenges/jbc6c.ts @@ -3,9 +3,11 @@ import Challenge from '../state/State/Challenge'; import Expr from '../state/State/Challenge/Expr'; import LocalizedString from '../util/LocalizedString'; +import tr from '@i18n'; + export default { - name: { [LocalizedString.EN_US]: 'JBC Challenge 6C' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 6C: Empty the Garage' }, + name: tr('JBC Challenge 6C'), + description: tr('Junior Botball Challenge 6C: Empty the Garage'), author: { type: Author.Type.Organization, id: 'kipr' @@ -18,40 +20,40 @@ export default { defaultLanguage: 'c', events: { canALifted: { - name: { [LocalizedString.EN_US]: 'Can A Lifted' }, - description: { [LocalizedString.EN_US]: 'Can A picked up' }, + name: tr('Can A Lifted'), + description: tr('Can A picked up') }, canBLifted: { - name: { [LocalizedString.EN_US]: 'Can B Lifted' }, - description: { [LocalizedString.EN_US]: 'Can B picked up' }, + name: tr('Can B Lifted'), + description: tr('Can B picked up'), }, canCLifted: { - name: { [LocalizedString.EN_US]: 'Can C Lifted' }, - description: { [LocalizedString.EN_US]: 'Can C picked up' }, + name: tr('Can C Lifted'), + description: tr('Can C picked up'), }, canAPlaced: { - name: { [LocalizedString.EN_US]: 'Can A Placed' }, - description: { [LocalizedString.EN_US]: 'Can A placed on circle 2' }, + name: tr('Can A Placed'), + description: tr('Can A placed on circle 2'), }, canBPlaced: { - name: { [LocalizedString.EN_US]: 'Can B Placed' }, - description: { [LocalizedString.EN_US]: 'Can A placed on circle 9' }, + name: tr('Can B Placed'), + description: tr('Can A placed on circle 9'), }, canCPlaced: { - name: { [LocalizedString.EN_US]: 'Can C Placed' }, - description: { [LocalizedString.EN_US]: 'Can A placed on circle 10' }, + name: tr('Can C Placed'), + description: tr('Can A placed on circle 10'), }, canAUpright: { - name: { [LocalizedString.EN_US]: 'Can A Upright' }, - description: { [LocalizedString.EN_US]: 'Can A upright on circle 2' }, + name: tr('Can A Upright'), + description: tr('Can A upright on circle 2'), }, canBUpright: { - name: { [LocalizedString.EN_US]: 'Can B Upright' }, - description: { [LocalizedString.EN_US]: 'Can B upright on circle 9' }, + name: tr('Can B Upright'), + description: tr('Can B upright on circle 9'), }, canCUpright: { - name: { [LocalizedString.EN_US]: 'Can C Upright' }, - description: { [LocalizedString.EN_US]: 'Can C upright on circle 10' }, + name: tr('Can C Upright'), + description: tr('Can C upright on circle 10'), }, }, success: { diff --git a/src/components/AboutDialog.tsx b/src/components/AboutDialog.tsx index 9d0c8b00..952890ba 100644 --- a/src/components/AboutDialog.tsx +++ b/src/components/AboutDialog.tsx @@ -10,11 +10,23 @@ import { faCopyright } from '@fortawesome/free-solid-svg-icons'; import KIPR_LOGO_BLACK from '../assets/KIPR-Logo-Black-Text-Clear-Large.png'; import KIPR_LOGO_WHITE from '../assets/KIPR-Logo-White-Text-Clear-Large.png'; -export interface AboutDialogProps extends ThemeProps, StyleProps { +import tr from '@i18n'; + +import { connect } from 'react-redux'; +import { State as ReduxState } from '../state'; +import LocalizedString from '../util/LocalizedString'; +import { sprintf } from 'sprintf-js'; +import Dict from '../Dict'; + +export interface AboutDialogPublicProps extends ThemeProps, StyleProps { onClose: () => void; } -type Props = AboutDialogProps; +interface AboutDialogPrivateProps { + locale: LocalizedString.Language; +} + +type Props = AboutDialogPublicProps & AboutDialogPrivateProps; const Logo = styled('img', { width: '150px', @@ -49,10 +61,10 @@ const CopyrightContainer = styled('div', { flex: '1 1' }); -export class AboutDialog extends React.PureComponent { +class AboutDialog extends React.PureComponent { render() { const { props } = this; - const { theme, onClose } = props; + const { theme, onClose, locale } = props; let logo: JSX.Element; @@ -68,18 +80,18 @@ export class AboutDialog extends React.PureComponent { } return ( - + {logo} - Version {SIMULATOR_VERSION} ({SIMULATOR_GIT_HASH}) + {LocalizedString.lookup(Dict.map(tr('Version %1 (%2)'), str => sprintf(str, SIMULATOR_VERSION, SIMULATOR_GIT_HASH)), locale)}

- Copyright 2022 KISS Institute for Practical Robotics and External Contributors + {LocalizedString.lookup(tr('Copyright'), locale)} 2023 KISS Institute for Practical Robotics {LocalizedString.lookup(tr('and External Contributors', 'Part of copyright notice, after KIPR is listed'), locale)}

- This software is licensed under the terms of the GNU General Public License v3. + {LocalizedString.lookup(tr('This software is licensed under the terms of the'), locale)} GNU General Public License v3.

- Thank you to the following contributors and testers: + {LocalizedString.lookup(tr('Thank you to the following contributors and testers:'), locale)}
  • Tim Corbly
  • Will Hawkins
  • @@ -89,11 +101,15 @@ export class AboutDialog extends React.PureComponent {
  • Nafis Zaman
- Want to help improve the simulator and get your name listed here?
- Visit our GitHub repository. - We're happy to help you get started! + {LocalizedString.lookup(tr('Want to help improve the simulator and get your name listed here?'), locale)}
+ {LocalizedString.lookup(tr('Visit our', 'URL link to github repository follows'), locale)} {LocalizedString.lookup(tr('GitHub repository'), locale)}. + {LocalizedString.lookup(tr('We\'re happy to help you get started!'), locale)}
); } -} \ No newline at end of file +} + +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(AboutDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/Challenge/EventViewer.tsx b/src/components/Challenge/EventViewer.tsx index 1830aa3d..b3926ef6 100644 --- a/src/components/Challenge/EventViewer.tsx +++ b/src/components/Challenge/EventViewer.tsx @@ -26,17 +26,18 @@ const Description = styled('div', { interface EventViewerProps extends StyleProps { event: Event; eventState?: boolean; + locale: LocalizedString.Language; } -const EventViewer: React.FC = ({ event: { name, description }, eventState, style, className }) => { +const EventViewer: React.FC = ({ event: { name, description }, eventState, style, className, locale }) => { return ( - {LocalizedString.lookup(name, LocalizedString.EN_US)} + {LocalizedString.lookup(name, locale)} {eventState !== undefined && } - {description && {LocalizedString.lookup(description, LocalizedString.EN_US)}} + {description && {LocalizedString.lookup(description, locale)}} ); }; diff --git a/src/components/Challenge/LoadingOverlay.tsx b/src/components/Challenge/LoadingOverlay.tsx index e9443aad..88c95a31 100644 --- a/src/components/Challenge/LoadingOverlay.tsx +++ b/src/components/Challenge/LoadingOverlay.tsx @@ -11,6 +11,10 @@ import { Dialog } from '../Dialog'; import { Modal } from '../Modal'; import { DARK } from '../theme'; +import tr from '@i18n'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; + const Container = styled('div', { display: 'flex', flexDirection: 'column', @@ -55,29 +59,34 @@ const LoadingButton = withStyleDeep(Button, { backgroundColor: 'grey', }); -export default ({ challenge, loading, onStartClick }: { challenge: AsyncChallenge; onStartClick: () => void; loading: boolean; }) => { +const LoadingOverlay = ({ challenge, loading, onStartClick, locale }: { challenge: AsyncChallenge; onStartClick: () => void; loading: boolean; locale: LocalizedString.Language; }) => { const latestChallenge = Async.latestValue(challenge); if (!latestChallenge) return null; return ( - CHALLENGE + {LocalizedString.lookup(tr('CHALLENGE'), locale)} - {LocalizedString.lookup(latestChallenge.name, LocalizedString.EN_US)} + {LocalizedString.lookup(latestChallenge.name, locale)} - {LocalizedString.lookup(latestChallenge.description, LocalizedString.EN_US)} + {LocalizedString.lookup(latestChallenge.description, locale)} {!loading - ? Start - : Loading... + ? {LocalizedString.lookup(tr('Start'), locale)} + : {LocalizedString.lookup(tr('Loading...'), locale)} } ); -}; \ No newline at end of file +}; + + +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(LoadingOverlay) as React.ComponentType<{ challenge: AsyncChallenge; onStartClick: () => void; loading: boolean; }>; \ No newline at end of file diff --git a/src/components/Challenge/Operator.tsx b/src/components/Challenge/Operator.tsx index ff30c098..1479b065 100644 --- a/src/components/Challenge/Operator.tsx +++ b/src/components/Challenge/Operator.tsx @@ -1,11 +1,14 @@ import * as React from 'react'; import { styled } from 'styletron-react'; +import LocalizedString from '../../util/LocalizedString'; import Dict from '../../Dict'; import Expr from '../../state/State/Challenge/Expr'; import { StyleProps } from '../../style'; +import tr from '@i18n'; export interface OperatorProps extends StyleProps { type: Expr.Type.And | Expr.Type.Or | Expr.Type.Xor | Expr.Type.Once | Expr.Type.Not; + locale: LocalizedString.Language; } type Props = OperatorProps; @@ -13,23 +16,23 @@ type Props = OperatorProps; const Container = styled('div', { }); -const Operator: React.FC = ({ type, className, style }) => { +const Operator: React.FC = ({ type, className, style, locale }) => { let text: string; switch (type) { case Expr.Type.And: - text = 'all of'; + text = LocalizedString.lookup(tr('all of'), locale); break; case Expr.Type.Or: - text = 'one or more of'; + text = LocalizedString.lookup(tr('one or more of'), locale); break; case Expr.Type.Xor: - text = 'exactly one of'; + text = LocalizedString.lookup(tr('exactly one of'), locale); break; case Expr.Type.Once: - text = 'once'; + text = LocalizedString.lookup(tr('once'), locale); break; case Expr.Type.Not: - text = 'not'; + text = LocalizedString.lookup(tr('not'), locale); break; } diff --git a/src/components/Challenge/PredicateEditor.tsx b/src/components/Challenge/PredicateEditor.tsx index db2e7d96..b2783411 100644 --- a/src/components/Challenge/PredicateEditor.tsx +++ b/src/components/Challenge/PredicateEditor.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; +import LocalizedString from '../../util/LocalizedString'; import Dict from '../../Dict'; import Event from '../../state/State/Challenge/Event'; import Expr from '../../state/State/Challenge/Expr'; @@ -14,6 +15,7 @@ export interface PredicateEditorProps extends StyleProps { predicate: Predicate; predicateCompletion?: PredicateCompletion; events: Dict; + locale: LocalizedString.Language; } namespace Node { @@ -39,7 +41,7 @@ namespace Node { type Node

= Node.Terminal

| Node.NonTerminal

; -const treeify = (exprs: Dict, rootId: string, events: Dict, exprStates?: Dict): Node => { +const treeify = (exprs: Dict, rootId: string, events: Dict, locale: LocalizedString.Language, exprStates?: Dict): Node => { const root = exprs[rootId]; switch (root.type) { @@ -53,7 +55,7 @@ const treeify = (exprs: Dict, rootId: string, events: Dict, exprSta // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment props: { type: root.type } as any }, - children: Dict.generate(root.argIds, id => treeify(exprs, id, events, exprStates)), + children: Dict.generate(root.argIds, id => treeify(exprs, id, events, locale, exprStates)), childrenOrdering: root.argIds, state: exprStates ? exprStates[rootId] : undefined }; @@ -67,7 +69,7 @@ const treeify = (exprs: Dict, rootId: string, events: Dict, exprSta // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment props: { type: root.type } as any }, - children: Dict.generate([root.argId], id => treeify(exprs, id, events, exprStates)), + children: Dict.generate([root.argId], id => treeify(exprs, id, events, locale, exprStates)), childrenOrdering: [root.argId], state: exprStates ? exprStates[rootId] : undefined }; @@ -78,7 +80,7 @@ const treeify = (exprs: Dict, rootId: string, events: Dict, exprSta node: { component: EventViewer, // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment - props: { event: events[root.eventId] } as any + props: { event: events[root.eventId], locale } as any }, state: exprStates ? exprStates[rootId] : undefined }; @@ -164,11 +166,12 @@ const PredicateEditor: React.FC = ({ predicateCompletion, events, style, - className + className, + locale }) => { const { exprs, rootId } = predicate; - const tree = treeify(exprs, rootId, events, predicateCompletion ? predicateCompletion.exprStates : undefined); + const tree = treeify(exprs, rootId, events, locale, predicateCompletion ? predicateCompletion.exprStates : undefined); return ( { render() { const { props, state } = this; - const { style, className, theme, challenge, challengeCompletion } = props; + const { style, className, theme, challenge, challengeCompletion, locale } = props; const { collapsed, modal } = state; @@ -139,20 +141,22 @@ class Challenge extends React.PureComponent { {latestChallenge.success && ( -

+
)} {latestChallenge.failure && ( -
+
)} @@ -163,4 +167,6 @@ class Challenge extends React.PureComponent { } } -export default Challenge; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(Challenge) as React.ComponentType; \ No newline at end of file diff --git a/src/components/ChallengeRoot.tsx b/src/components/ChallengeRoot.tsx index 71638240..71f128b4 100644 --- a/src/components/ChallengeRoot.tsx +++ b/src/components/ChallengeRoot.tsx @@ -10,12 +10,12 @@ import { styled } from 'styletron-react'; import { DARK, Theme } from './theme'; import { Layout, LayoutProps, OverlayLayout, OverlayLayoutRedux, SideLayoutRedux } from './Layout'; -import { SettingsDialog } from './SettingsDialog'; -import { AboutDialog } from './AboutDialog'; +import SettingsDialog from './SettingsDialog'; +import AboutDialog from './AboutDialog'; -import { FeedbackDialog } from './Feedback'; +import FeedbackDialog from './Feedback'; import { sendFeedback, FeedbackResponse } from './Feedback/SendFeedback'; -import { FeedbackSuccessDialog } from './Feedback/SuccessModal'; +import FeedbackSuccessDialog from './Feedback/SuccessModal'; import compile from '../compile'; import { SimulatorState } from './SimulatorState'; diff --git a/src/components/Console/ClearCharm.tsx b/src/components/Console/ClearCharm.tsx index eab06938..e8708b29 100644 --- a/src/components/Console/ClearCharm.tsx +++ b/src/components/Console/ClearCharm.tsx @@ -7,9 +7,13 @@ import { ThemeProps } from '../theme'; import { charmColor } from '../charm-util'; import { faTimes } from '@fortawesome/free-solid-svg-icons'; +import LocalizedString from '../../util/LocalizedString'; + +import tr from '@i18n'; export interface ClearCharmProps extends StyleProps, ThemeProps { onClick: (event: React.MouseEvent) => void; + locale: LocalizedString.Language; } type Props = ClearCharmProps; @@ -27,12 +31,13 @@ class ClearCharm extends React.PureComponent { const { props } = this; const { theme, - onClick + onClick, + locale } = props; return ( - Clear + {LocalizedString.lookup(tr('Clear'), locale)} ); } diff --git a/src/components/Console/index.tsx b/src/components/Console/index.tsx index d2ac726d..bfdc7b1c 100644 --- a/src/components/Console/index.tsx +++ b/src/components/Console/index.tsx @@ -12,10 +12,13 @@ import { Button } from '../Button'; import { BarComponent } from '../Widget'; import { faFile } from '@fortawesome/free-solid-svg-icons'; +import LocalizedString from '../../util/LocalizedString'; +import tr from '@i18n'; export const createConsoleBarComponents = ( theme: Theme, onClearConsole: () => void, + locale: LocalizedString.Language ) => { // eslint-disable-next-line @typescript-eslint/ban-types const consoleBar: BarComponent[] = []; @@ -26,7 +29,7 @@ export const createConsoleBarComponents = ( children: <> - {' Clear'} + {' '} {LocalizedString.lookup(tr('Clear'), locale)} , })); diff --git a/src/components/DeleteDialog.tsx b/src/components/DeleteDialog.tsx index daef1e06..422fdd24 100644 --- a/src/components/DeleteDialog.tsx +++ b/src/components/DeleteDialog.tsx @@ -10,13 +10,23 @@ import DialogBar from './DialogBar'; import { faPlus, faTrash } from '@fortawesome/free-solid-svg-icons'; import LocalizedString from '../util/LocalizedString'; -export interface DeleteDialogProps extends ThemeProps, StyleProps { +import tr from '@i18n'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../state'; +import Dict from '../Dict'; +import { sprintf } from 'sprintf-js'; + +export interface DeleteDialogPublicProps extends ThemeProps, StyleProps { name: LocalizedString; onClose: () => void; onAccept: () => void; } -type Props = DeleteDialogProps; +interface DeleteDialogPrivateProps { + locale: LocalizedString.Language; +} + +type Props = DeleteDialogPublicProps & DeleteDialogPrivateProps; const Container = styled('div', (props: ThemeProps) => ({ color: props.theme.color, @@ -26,17 +36,23 @@ const Container = styled('div', (props: ThemeProps) => ({ class DeleteDialog extends React.PureComponent { render() { const { props } = this; - const { name, theme, onClose, onAccept } = props; + const { name, theme, onClose, onAccept, locale } = props; return ( - + sprintf(str, LocalizedString.lookup(name, locale))), locale)} + onClose={onClose} + > - Are you sure you want to delete {name[LocalizedString.EN_US] || 'this'}? + {LocalizedString.lookup(Dict.map(tr('Are you sure you want to delete %1?'), str => sprintf(str, LocalizedString.lookup(name, locale))), locale)} - Delete + {LocalizedString.lookup(tr('Delete'), locale)} ); } } -export default DeleteDialog; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(DeleteDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/Editor/Editor.tsx b/src/components/Editor/Editor.tsx index 0b023b02..076d2373 100644 --- a/src/components/Editor/Editor.tsx +++ b/src/components/Editor/Editor.tsx @@ -20,7 +20,10 @@ import Dict from '../../Dict'; import * as monaco from 'monaco-editor'; import DocumentationLocation from '../../state/State/Documentation/DocumentationLocation'; import { DocumentationAction } from '../../state/reducer'; +import tr from '@i18n'; import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; +import LocalizedString from '../../util/LocalizedString'; export enum EditorActionState { None, @@ -39,6 +42,10 @@ export interface EditorPublicProps extends StyleProps, ThemeProps { onDocumentationGoToFuzzy?: (query: string, language: 'c' | 'python') => void; } +interface EditorPrivateProps { + locale: LocalizedString.Language; +} + interface EditorState { } @@ -80,10 +87,12 @@ export type EditorBarTarget = EditorBarTarget.Robot; export const createEditorBarComponents = ({ theme, - target + target, + locale }: { theme: Theme, target: EditorBarTarget, + locale: LocalizedString.Language }) => { // eslint-disable-next-line @typescript-eslint/ban-types @@ -106,7 +115,7 @@ export const createEditorBarComponents = ({ children: <> - {' Indent'} + {' '} {LocalizedString.lookup(tr('Indent'), locale)} })); @@ -116,7 +125,7 @@ export const createEditorBarComponents = ({ children: <> - {' Download'} + {' '} {LocalizedString.lookup(tr('Download'), locale)} })); @@ -126,7 +135,7 @@ export const createEditorBarComponents = ({ children: <> - {' Reset'} + {' '} {LocalizedString.lookup(tr('Reset'), locale)} })); @@ -146,13 +155,15 @@ export const createEditorBarComponents = ({ if (errors > 0) editorBar.push(BarComponent.create(ErrorCharm, { theme, count: errors, - onClick: target.onErrorClick + onClick: target.onErrorClick, + locale })); if (warnings > 0) editorBar.push(BarComponent.create(WarningCharm, { theme, count: warnings, - onClick: target.onErrorClick + onClick: target.onErrorClick, + locale })); break; } diff --git a/src/components/Editor/ErrorCharm.tsx b/src/components/Editor/ErrorCharm.tsx index 0a12642a..f26ef3a3 100644 --- a/src/components/Editor/ErrorCharm.tsx +++ b/src/components/Editor/ErrorCharm.tsx @@ -7,11 +7,15 @@ import { ThemeProps } from '../theme'; import { charmColor } from '../charm-util'; import { faTimesCircle } from '@fortawesome/free-solid-svg-icons'; +import LocalizedString from '../../util/LocalizedString'; + +import tr from '@i18n'; export interface ErrorCharmProps extends StyleProps, ThemeProps { count: number; onClick: (event: React.MouseEvent) => void; + locale: LocalizedString.Language; } type Props = ErrorCharmProps; @@ -30,12 +34,13 @@ class ErrorCharm extends React.PureComponent { const { theme, count, - onClick + onClick, + locale } = props; return ( - {count} Error{count === 1 ? '' : 's'} + {count} {LocalizedString.lookup(tr('Error(s)'), locale)} ); } diff --git a/src/components/Editor/WarningCharm.tsx b/src/components/Editor/WarningCharm.tsx index 14cddbb3..5303b476 100644 --- a/src/components/Editor/WarningCharm.tsx +++ b/src/components/Editor/WarningCharm.tsx @@ -7,11 +7,15 @@ import { ThemeProps } from '../theme'; import { charmColor } from '../charm-util'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; +import LocalizedString from '../../util/LocalizedString'; +import tr from '@i18n'; export interface WarningCharmProps extends StyleProps, ThemeProps { count: number; onClick: (event: React.MouseEvent) => void; + + locale: LocalizedString.Language; } type Props = WarningCharmProps; @@ -30,12 +34,13 @@ class WarningCharm extends React.PureComponent { const { theme, count, - onClick + onClick, + locale } = props; return ( - {count} Warning{count === 1 ? '' : 's'} + {count} {LocalizedString.lookup(tr('Warning(s)'), locale)} ); } diff --git a/src/components/ExtraMenu.tsx b/src/components/ExtraMenu.tsx index 89d32ace..cb905c44 100644 --- a/src/components/ExtraMenu.tsx +++ b/src/components/ExtraMenu.tsx @@ -6,7 +6,14 @@ import { Fa } from './Fa'; import { ThemeProps } from './theme'; import { faBook, faCaretSquareLeft, faClone, faCogs, faCommentDots, faCopy, faEye, faEyeSlash, faFolderOpen, faPlus, faQuestion, faSave, faSignOutAlt } from '@fortawesome/free-solid-svg-icons'; -export interface ExtraMenuProps extends StyleProps, ThemeProps { +import tr from '@i18n'; + +import { connect } from 'react-redux'; + +import { State as ReduxState } from '../state'; +import LocalizedString from '../util/LocalizedString'; + +export interface ExtraMenuPublicProps extends StyleProps, ThemeProps { onLogoutClick: (event: React.MouseEvent) => void; onFeedbackClick?: (event: React.MouseEvent) => void; onDocumentationClick: (event: React.MouseEvent) => void; @@ -14,11 +21,15 @@ export interface ExtraMenuProps extends StyleProps, ThemeProps { onAboutClick: (event: React.MouseEvent) => void; } +interface ExtraMenuPrivateProps { + locale: LocalizedString.Language; +} + interface ExtraMenuState { } -type Props = ExtraMenuProps; +type Props = ExtraMenuPublicProps & ExtraMenuPrivateProps; type State = ExtraMenuState; const Container = styled('div', (props: ThemeProps) => ({ @@ -90,17 +101,20 @@ class ExtraMenu extends React.PureComponent { onDocumentationClick, onFeedbackClick, onSettingsClick, + locale, } = props; return ( - Documentation - Settings - About - {onFeedbackClick && Feedback} - Logout + {LocalizedString.lookup(tr('Documentation'), locale)} + {LocalizedString.lookup(tr('Settings'), locale)} + {LocalizedString.lookup(tr('About'), locale)} + {onFeedbackClick && {LocalizedString.lookup(tr('Feedback'), locale)}} + {LocalizedString.lookup(tr('Logout'), locale)} ); } } -export default ExtraMenu; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale +}))(ExtraMenu) as React.ComponentType; \ No newline at end of file diff --git a/src/components/Feedback/SuccessModal.tsx b/src/components/Feedback/SuccessModal.tsx index 3d21c066..9c9a8927 100644 --- a/src/components/Feedback/SuccessModal.tsx +++ b/src/components/Feedback/SuccessModal.tsx @@ -5,16 +5,26 @@ import { Dialog } from '../Dialog'; import { ThemeProps } from '../theme'; import { FeedbackContainer, CenterContainer } from './index'; -export interface FeedbackSuccessDialogProp extends ThemeProps, StyleProps { +import tr from '@i18n'; + +import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; +import LocalizedString from '../../util/LocalizedString'; + +export interface FeedbackSuccessDialogPublicProps extends ThemeProps, StyleProps { onClose: () => void; } +interface FeedbackSuccessDialogPrivateProps { + locale: LocalizedString.Language; +} + interface FeedbackSuccessDialogState {} -type Props = FeedbackSuccessDialogProp; +type Props = FeedbackSuccessDialogPublicProps & FeedbackSuccessDialogPrivateProps; type State = FeedbackSuccessDialogState; -export class FeedbackSuccessDialog extends React.PureComponent { +class FeedbackSuccessDialog extends React.PureComponent { constructor(props: Props) { super(props); this.state = { @@ -24,19 +34,23 @@ export class FeedbackSuccessDialog extends React.PureComponent { render() { const { props, state } = this; - const { style, className, theme, onClose } = props; + const { style, className, theme, onClose, locale } = props; return ( - + -

Feedback successfully submitted!

-

Thank you for helping improve the KIPR Simulator!

+

{LocalizedString.lookup(tr('Feedback successfully submitted!'), locale)}

+

{LocalizedString.lookup(tr('Thank you for helping improve the KIPR Simulator!'), locale)}

); } -} \ No newline at end of file +} + +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(FeedbackSuccessDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/Feedback/index.tsx b/src/components/Feedback/index.tsx index 0d1af76b..08e6cb25 100644 --- a/src/components/Feedback/index.tsx +++ b/src/components/Feedback/index.tsx @@ -11,16 +11,26 @@ import { Fa } from '../Fa'; import { faFrown, faMeh, faPaperPlane, faSmileBeam } from '@fortawesome/free-solid-svg-icons'; -export interface FeedbackDialogProp extends ThemeProps, StyleProps { +import tr from '@i18n'; + +import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; +import LocalizedString from '../../util/LocalizedString'; + +export interface FeedbackDialogPublicProps extends ThemeProps, StyleProps { onClose: () => void; onSubmit: () => void; feedback: Feedback; onFeedbackChange: (settings: Partial) => void; } +interface FeedbackDialogPrivateProps { + locale: LocalizedString.Language; +} + interface FeedbackDialogState {} -type Props = FeedbackDialogProp; +type Props = FeedbackDialogPublicProps & FeedbackDialogPrivateProps; type State = FeedbackDialogState; export const FeedbackContainer = styled('div', (props: ThemeProps) => ({ @@ -46,7 +56,7 @@ export const FeedbackLink = styled('a', () => ({ color: 'lightblue', })); -export class FeedbackDialog extends React.PureComponent { +class FeedbackDialog extends React.PureComponent { constructor(props: Props) { super(props); this.state = { @@ -110,23 +120,27 @@ export class FeedbackDialog extends React.PureComponent { render() { const { props, state } = this; - const { style, className, theme, onClose, onSubmit } = props; + const { style, className, theme, onClose, onSubmit, locale } = props; return ( - + - Thanks for using the KIPR Simulator! Find a bug? Have a feature request? Let us know! + {LocalizedString.lookup(tr('Thanks for using the KIPR Simulator! Find a bug? Have a feature request? Let us know!'), locale)}

- Feedback + {LocalizedString.lookup(tr('Feedback'), locale)}
{this.createFeedbackTextArea( (feedback: Feedback) => feedback.feedback, (newValue: string) => ({ feedback: newValue }) )} - How has your experience using the KIPR Simulator been? + {LocalizedString.lookup(tr('How has your experience using the KIPR Simulator been?'), locale)}
@@ -138,7 +152,7 @@ export class FeedbackDialog extends React.PureComponent { - Email (optional): + {LocalizedString.lookup(tr('Email (optional): '), locale)} {this.createFeedbackEmailInput( @@ -149,7 +163,7 @@ export class FeedbackDialog extends React.PureComponent { - Include anonymous usage data to help KIPR developers + {LocalizedString.lookup(tr('Include anonymous usage data to help KIPR developers'), locale)} {this.createCheckbox( @@ -165,22 +179,26 @@ export class FeedbackDialog extends React.PureComponent { {this.props.feedback.error &&

- <>Please try again, + <>{LocalizedString.lookup(tr('Please try again,'), locale)} - open an issue on our github page + {LocalizedString.lookup(tr('open an issue on our github page'), locale)} - <>, or + <>{LocalizedString.lookup(tr(', or'), locale)} - email KIPR. + {LocalizedString.lookup(tr('email KIPR.'), locale)}

}
- Submit + {LocalizedString.lookup(tr('Submit'), props.locale)}
); } -} \ No newline at end of file +} + +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(FeedbackDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/Info/Info.tsx b/src/components/Info/Info.tsx index 53c31655..addfd513 100644 --- a/src/components/Info/Info.tsx +++ b/src/components/Info/Info.tsx @@ -18,18 +18,25 @@ import Motor from '../../AbstractRobot/Motor'; import { faSync } from '@fortawesome/free-solid-svg-icons'; import Async from '../../state/State/Async'; +import tr from '@i18n'; +import LocalizedString from '../../util/LocalizedString'; -export interface InfoProps extends StyleProps, ThemeProps { + +export interface InfoPublicProps extends StyleProps, ThemeProps { node: Node.Robot; onOriginChange: (origin: ReferenceFrame) => void; } +interface InfoPrivateProps { + locale: LocalizedString.Language; +} + interface InfoState { collapsed: { [section: string]: boolean } } -type Props = InfoProps; +type Props = InfoPublicProps & InfoPrivateProps; type State = InfoState; const Row = styled('div', (props: ThemeProps) => ({ @@ -94,14 +101,6 @@ const MOTOR_POSITIONS_NAME = StyledText.compose({ ] }); -const ANALOG_NAME = StyledText.text({ - text: 'Analog Sensors', -}); - -const DIGITAL_NAME = StyledText.text({ - text: 'Digital Sensors', -}); - const ResetIcon = styled(Fa, ({ theme }: ThemeProps) => ({ marginLeft: `${theme.itemPadding * 2}px`, opacity: 0.5, @@ -142,6 +141,7 @@ class Info extends React.PureComponent { className, theme, node, + locale } = props; if (!node || node.type !== 'robot') return null; @@ -151,7 +151,7 @@ class Info extends React.PureComponent { const locationName = StyledText.compose({ items: [ StyledText.text({ - text: 'Start Location', + text: LocalizedString.lookup(tr('Start Location'), locale), }), StyledText.component({ component: ResetIcon, @@ -180,13 +180,13 @@ class Info extends React.PureComponent { const motor = node.state.motors[i]; motorVelocities.push( - + ); motorPositions.push( - + ); } @@ -195,7 +195,7 @@ class Info extends React.PureComponent { for (let i = 0; i < 6; ++i) { analogSensors.push( - + ); } @@ -204,10 +204,18 @@ class Info extends React.PureComponent { for (let i = 0; i < 6; ++i) { digitalSensors.push( - + ); } + + const analogName = StyledText.text({ + text: LocalizedString.lookup(tr('Analog Sensors'), locale), + }); + + const digitalName = StyledText.text({ + text: LocalizedString.lookup(tr('Digital Sensors'), locale), + }); return ( @@ -249,7 +257,7 @@ class Info extends React.PureComponent { {motorPositions} { {analogSensors} { } } -export default Info; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale +}))(Info) as React.ComponentType; \ No newline at end of file diff --git a/src/components/Layout/LayoutPicker.tsx b/src/components/Layout/LayoutPicker.tsx index 49f7f81f..a21c1b4e 100644 --- a/src/components/Layout/LayoutPicker.tsx +++ b/src/components/Layout/LayoutPicker.tsx @@ -6,8 +6,12 @@ import { Fa } from '../Fa'; import { Layout } from './Layout'; import { ThemeProps } from '../theme'; import { faCaretSquareLeft, faClone, faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons'; +import LocalizedString from '../../util/LocalizedString'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; +import tr from '@i18n'; -export interface LayoutPickerProps extends StyleProps, ThemeProps { +export interface LayoutPickerPublicProps extends StyleProps, ThemeProps { layout: Layout, onLayoutChange: (layout: Layout) => void; @@ -16,11 +20,15 @@ export interface LayoutPickerProps extends StyleProps, ThemeProps { onHideAll: () => void; } +interface LayoutPickerPrivateProps { + locale: LocalizedString.Language; +} + interface LayoutPickerState { } -type Props = LayoutPickerProps; +type Props = LayoutPickerPublicProps & LayoutPickerPrivateProps; type State = LayoutPickerState; const Container = styled('div', (props: ThemeProps) => ({ @@ -104,19 +112,19 @@ class LayoutPicker extends React.PureComponent { render() { const { props } = this; - const { theme, layout, onHideAll, onShowAll } = props; + const { theme, layout, onHideAll, onShowAll, locale } = props; return ( - Layouts - Overlay - Side + {LocalizedString.lookup(tr('Layouts'), locale)} + {LocalizedString.lookup(tr('Overlay'), locale)} + {LocalizedString.lookup(tr('Side'), locale)} {/* Bottom */} {layout === Layout.Overlay ? ( <> - Options - Show All - Hide All + {LocalizedString.lookup(tr('Options'), locale)} + {LocalizedString.lookup(tr('Show All'), locale)} + {LocalizedString.lookup(tr('Hide All'), locale)} ) : undefined} @@ -124,4 +132,6 @@ class LayoutPicker extends React.PureComponent { } } -export default LayoutPicker; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale +}))(LayoutPicker) as React.ComponentType; \ No newline at end of file diff --git a/src/components/Layout/OverlayLayout.tsx b/src/components/Layout/OverlayLayout.tsx index 289d3f24..8b0d2f09 100644 --- a/src/components/Layout/OverlayLayout.tsx +++ b/src/components/Layout/OverlayLayout.tsx @@ -10,7 +10,7 @@ import World, { createWorldBarComponents } from '../World'; import { Info } from '../Info'; import { LayoutEditorTarget, LayoutProps } from './Layout'; -import { SimulatorArea } from '../SimulatorArea'; +import SimulatorArea from '../SimulatorArea'; import { Theme, ThemeProps } from '../theme'; import Widget, { BarComponent, Mode, Size, WidgetProps } from '../Widget'; import { State as ReduxState } from '../../state'; @@ -21,6 +21,9 @@ import Async from '../../state/State/Async'; import { EMPTY_OBJECT } from '../../util'; import Challenge from '../Challenge'; import { ReferenceFrame } from '../../unit-math'; +import LocalizedString from '../../util/LocalizedString'; + +import tr from '@i18n'; export interface OverlayLayoutProps extends LayoutProps { @@ -28,6 +31,7 @@ export interface OverlayLayoutProps extends LayoutProps { interface ReduxOverlayLayoutProps { robots: Dict; + locale: LocalizedString.Language; } interface OverlayLayoutState { @@ -361,6 +365,7 @@ export class OverlayLayout extends React.PureComponent ({ }), null, { forwardRef: true })(OverlayLayout); \ No newline at end of file diff --git a/src/components/Layout/SideLayout.tsx b/src/components/Layout/SideLayout.tsx index b0cf4d4d..48d5d68e 100644 --- a/src/components/Layout/SideLayout.tsx +++ b/src/components/Layout/SideLayout.tsx @@ -11,7 +11,7 @@ import World, { createWorldBarComponents } from '../World'; import { Info } from '../Info'; import { LayoutEditorTarget, LayoutProps } from './Layout'; -import { SimulatorArea } from '../SimulatorArea'; +import SimulatorArea from '../SimulatorArea'; import { TabBar } from '../TabBar'; import Widget, { BarComponent, Mode, Size } from '../Widget'; import { Slider } from '../Slider'; @@ -26,6 +26,11 @@ import { EMPTY_OBJECT } from '../../util'; import Challenge from '../Challenge'; import { ReferenceFrame } from '../../unit-math'; +import tr from '@i18n'; +import LocalizedString from '../../util/LocalizedString'; + + + // 3 panes: // Editor / console // Robot Info @@ -51,6 +56,7 @@ export interface SideLayoutProps extends LayoutProps { interface ReduxSideLayoutProps { robots: Dict; + locale: LocalizedString.Language; } interface SideLayoutState { @@ -201,6 +207,7 @@ export class SideLayout extends React.PureComponent @@ -270,7 +278,7 @@ export class SideLayout extends React.PureComponent ({ diff --git a/src/components/Loading.tsx b/src/components/Loading.tsx index 93ca3443..ca30799c 100644 --- a/src/components/Loading.tsx +++ b/src/components/Loading.tsx @@ -2,7 +2,12 @@ import * as React from 'react'; import ReactLoading, { LoadingType } from 'react-loading'; import { styled } from 'styletron-react'; -export interface LoadingProps { +import tr from '@i18n'; +import LocalizedString from '../util/LocalizedString'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../state'; + +export interface LoadingPublicProps { message?: string errorMessage?: string color?: string @@ -11,6 +16,12 @@ export interface LoadingProps { type?: LoadingType } +interface LoadingPrivateProps { + locale: LocalizedString.Language; +} + +type Props = LoadingPublicProps & LoadingPrivateProps; + const LoadingPage = styled('div', { display: 'flex', flexDirection: 'column', @@ -24,17 +35,17 @@ const LoadingText = styled('div', { fontSize: '32px', }); -const LoadingErrorText = styled('div', (props: LoadingProps) => ({ +const LoadingErrorText = styled('div', (props: Props) => ({ paddingTop: props.height ? 2 * props.height : '100px', fontSize: '20px', whiteSpace: 'pre-wrap' })); -const Loading: React.FunctionComponent = (props) => { +const Loading: React.FunctionComponent = (props) => { return ( - {props.message ? props.message : 'Loading...'} + {props.message ? props.message : LocalizedString.lookup(tr('Loading...'), props.locale)} = (props) => { height={props.height ? props.height : 50} color={props.color ? props.color : '#4b64ad'} /> - + {props.errorMessage ? props.errorMessage : null} ); }; -export default Loading; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(Loading) as React.ComponentType; \ No newline at end of file diff --git a/src/components/MainMenu.tsx b/src/components/MainMenu.tsx index d1a189e8..6907d943 100644 --- a/src/components/MainMenu.tsx +++ b/src/components/MainMenu.tsx @@ -8,16 +8,27 @@ import { DARK, ThemeProps } from './theme'; import { faSignOutAlt } from '@fortawesome/free-solid-svg-icons'; -export interface MenuProps extends StyleProps, ThemeProps {} +import tr from '@i18n'; + +import { connect } from 'react-redux'; + +import { State as ReduxState } from '../state'; -interface MenuState {} - -type Props = MenuProps; -type State = MenuState; - import KIPR_LOGO_BLACK from '../assets/KIPR-Logo-Black-Text-Clear-Large.png'; import KIPR_LOGO_WHITE from '../assets/KIPR-Logo-White-Text-Clear-Large.png'; import { signOutOfApp } from '../firebase/modules/auth'; +import LocalizedString from '../util/LocalizedString'; + +export interface MenuPublicProps extends StyleProps, ThemeProps {} + +interface MenuPrivateProps { + locale: LocalizedString.Language; +} + +interface MenuState {} + +type Props = MenuPublicProps & MenuPrivateProps; +type State = MenuState; const Container = styled('div', (props: ThemeProps) => ({ backgroundColor: props.theme.backgroundColor, @@ -94,17 +105,19 @@ export class MainMenu extends React.Component { }; render() { - const { className, style } = this.props; + const { className, style, locale } = this.props; const theme = DARK; return ( {/* Dashboard */} - Logout + {LocalizedString.lookup(tr('Logout'), locale)} ); } } -export default MainMenu; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale +}))(MainMenu) as React.ComponentType; \ No newline at end of file diff --git a/src/components/NewSceneDialog.tsx b/src/components/NewSceneDialog.tsx index fe4bad0b..4fa58e6e 100644 --- a/src/components/NewSceneDialog.tsx +++ b/src/components/NewSceneDialog.tsx @@ -9,16 +9,26 @@ import SceneSettings from './SceneSettings'; import DialogBar from './DialogBar'; import { faPlus } from '@fortawesome/free-solid-svg-icons'; -export interface NewSceneDialogProps extends ThemeProps, StyleProps { +import tr from '@i18n'; +import LocalizedString from '../util/LocalizedString'; +import { connect } from 'react-redux'; + +import { State as ReduxState } from '../state'; + +export interface NewSceneDialogPublicProps extends ThemeProps, StyleProps { onClose: () => void; onAccept: (scene: Scene) => void; } +interface NewSceneDialogPrivateProps { + locale: LocalizedString.Language; +} + interface NewSceneDialogState { scene: Scene; } -type Props = NewSceneDialogProps; +type Props = NewSceneDialogPublicProps & NewSceneDialogPrivateProps; type State = NewSceneDialogState; const StyledSceneSettings = styled(SceneSettings, ({ theme }: ThemeProps) => ({ @@ -41,20 +51,26 @@ class NewSceneDialog extends React.PureComponent { render() { const { props, state } = this; - const { theme, onClose, onAccept } = props; + const { theme, onClose, onAccept, locale } = props; const { scene } = state; return ( - + - Create + {LocalizedString.lookup(tr('Create'), locale)} ); } } -export default NewSceneDialog; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(NewSceneDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/OpenSceneDialog.tsx b/src/components/OpenSceneDialog.tsx index 67798d16..a5e01191 100644 --- a/src/components/OpenSceneDialog.tsx +++ b/src/components/OpenSceneDialog.tsx @@ -19,17 +19,20 @@ import LocalizedString from '../util/LocalizedString'; import Author from '../db/Author'; import { auth } from '../firebase/firebase'; -export interface OpenSceneDialogProps extends ThemeProps { +import tr from '@i18n'; + +export interface OpenSceneDialogPublicProps extends ThemeProps { onClose: () => void; } -interface ReduxOpenSceneDialogProps { +interface OpenSceneDialogPrivateProps { scenes: Scenes; + locale: LocalizedString.Language; onSceneChange: (sceneId: string) => void; listUserScenes: () => void; } -type Props = OpenSceneDialogProps; +type Props = OpenSceneDialogPublicProps & OpenSceneDialogPrivateProps; interface SelectSceneDialogState { selectedSceneId: string | null; @@ -80,8 +83,8 @@ interface SectionProps { selected?: boolean; } -class OpenSceneDialog extends React.PureComponent { - constructor(props: Props & ReduxOpenSceneDialogProps) { +class OpenSceneDialog extends React.PureComponent { + constructor(props: Props) { super(props); this.state = { selectedSceneId: null, @@ -92,7 +95,7 @@ class OpenSceneDialog extends React.PureComponent) { + componentDidUpdate(prevProps: Readonly) { // Check if selectedSceneId is not longer one of the scenes if (this.props.scenes !== prevProps.scenes) { if (!Object.prototype.hasOwnProperty.call(this.props.scenes, this.state.selectedSceneId)) { @@ -102,7 +105,7 @@ class OpenSceneDialog extends React.PureComponent + {loadedScenesArray.map(s => this.createSceneName(s[0], s[1]))} @@ -156,7 +159,7 @@ class OpenSceneDialog extends React.PureComponent { - const { theme } = this.props; + const { theme, locale } = this.props; let name: string; let description: string; @@ -166,27 +169,27 @@ class OpenSceneDialog extends React.PureComponentUnknown; + if (!value) return {LocalizedString.lookup(tr('Unknown'), locale)}; - name = LocalizedString.lookup(value.name, LocalizedString.EN_US); - description = LocalizedString.lookup(value.description, LocalizedString.EN_US); + name = LocalizedString.lookup(value.name, locale); + description = LocalizedString.lookup(value.description, locale); author = value.author; } else { - name = LocalizedString.lookup(brief.name, LocalizedString.EN_US); - description = LocalizedString.lookup(brief.description, LocalizedString.EN_US); + name = LocalizedString.lookup(brief.name, locale); + description = LocalizedString.lookup(brief.description, locale); author = brief.author; } return ( <> - {`Description: ${description}`} - {`Author: ${author.id === auth.currentUser.uid ? 'Me' : author.id}`} + {LocalizedString.lookup(tr('Description: '), locale)} {description} + {LocalizedString.lookup(tr('Author: '), locale)} {author.id === auth.currentUser.uid ? LocalizedString.lookup(tr('Me'), locale) : author.id} ); }; private createNoSceneInfo = () => { - return Select a scene to see more details; + return {LocalizedString.lookup(tr('Select a scene to see more details'), this.props.locale)}; }; private onSceneClick = (sceneId: string) => { @@ -198,9 +201,10 @@ class OpenSceneDialog extends React.PureComponent((state: ReduxState, ownProps) => ({ scenes: state.scenes, + locale: state.i18n.locale, }), (dispatch, b) => ({ onSceneChange: (sceneId: string) => { dispatch(push(`/scene/${sceneId}`)); }, listUserScenes: () => dispatch(ScenesAction.LIST_USER_SCENES), -}))(OpenSceneDialog) as React.ComponentType; \ No newline at end of file +}))(OpenSceneDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/Root.tsx b/src/components/Root.tsx index a398ec04..624a4d42 100644 --- a/src/components/Root.tsx +++ b/src/components/Root.tsx @@ -10,12 +10,12 @@ import { styled } from 'styletron-react'; import { DARK, Theme } from './theme'; import { Layout, LayoutProps, OverlayLayout, OverlayLayoutRedux, SideLayoutRedux } from './Layout'; -import { SettingsDialog } from './SettingsDialog'; -import { AboutDialog } from './AboutDialog'; +import SettingsDialog from './SettingsDialog'; +import AboutDialog from './AboutDialog'; -import { FeedbackDialog } from './Feedback'; +import FeedbackDialog from './Feedback'; import { sendFeedback, FeedbackResponse } from './Feedback/SendFeedback'; -import { FeedbackSuccessDialog } from './Feedback/SuccessModal'; +import FeedbackSuccessDialog from './Feedback/SuccessModal'; import compile from '../compile'; import { SimulatorState } from './SimulatorState'; diff --git a/src/components/SaveAsSceneDialog.tsx b/src/components/SaveAsSceneDialog.tsx index cadc2fe3..1907880f 100644 --- a/src/components/SaveAsSceneDialog.tsx +++ b/src/components/SaveAsSceneDialog.tsx @@ -10,18 +10,28 @@ import DialogBar from './DialogBar'; import { faPlus } from '@fortawesome/free-solid-svg-icons'; import deepNeq from '../deepNeq'; -export interface CopySceneDialogProps extends ThemeProps, StyleProps { +import tr from '@i18n'; +import LocalizedString from '../util/LocalizedString'; +import { connect } from 'react-redux'; + +import { State as ReduxState } from '../state'; + +export interface CopySceneDialogPublicProps extends ThemeProps, StyleProps { scene: Scene; onClose: () => void; onAccept: (scene: Scene) => void; } +interface CopySceneDialogPrivateProps { + locale: LocalizedString.Language; +} + interface CopySceneDialogState { scene: Scene; } -type Props = CopySceneDialogProps; +type Props = CopySceneDialogPublicProps & CopySceneDialogPrivateProps; type State = CopySceneDialogState; const StyledSceneSettings = styled(SceneSettings, ({ theme }: ThemeProps) => ({ @@ -38,7 +48,7 @@ class SaveAsSceneDialog extends React.PureComponent { }; } - componentDidUpdate(prevProps: Readonly, prevState: Readonly): void { + componentDidUpdate(prevProps: Readonly, prevState: Readonly): void { if (deepNeq(prevProps.scene.name, this.props.scene.name) || deepNeq(prevProps.scene.description, this.props.scene.description)) { this.setState({ scene: this.props.scene }); } @@ -50,20 +60,26 @@ class SaveAsSceneDialog extends React.PureComponent { render() { const { props, state } = this; - const { theme, onClose, onAccept } = props; + const { theme, onClose, onAccept, locale } = props; const { scene } = state; return ( - + - Create + {LocalizedString.lookup(tr('Create'), locale)} ); } } -export default SaveAsSceneDialog; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(SaveAsSceneDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/SceneErrorDialog.tsx b/src/components/SceneErrorDialog.tsx index f369cd8e..6d07549d 100644 --- a/src/components/SceneErrorDialog.tsx +++ b/src/components/SceneErrorDialog.tsx @@ -5,13 +5,25 @@ import { Dialog } from './Dialog'; import DialogBar from './DialogBar'; import { ThemeProps } from './theme'; -interface SceneErrorDialogProps extends ThemeProps { +import tr from '@i18n'; +import LocalizedString from '../util/LocalizedString'; + +import { connect } from 'react-redux'; +import { State as ReduxState } from '../state'; +import Dict from '../Dict'; +import { sprintf } from 'sprintf-js'; + +interface SceneErrorDialogPublicProps extends ThemeProps { error: Async.Error; onClose: () => void; } -type Props = SceneErrorDialogProps; +interface SceneErrorDialogPrivateProps { + locale: LocalizedString.Language; +} + +type Props = SceneErrorDialogPublicProps & SceneErrorDialogPrivateProps; const Container = styled('div', (props: ThemeProps) => ({ })); @@ -25,17 +37,21 @@ const Message = styled('div', (props: ThemeProps) => ({ class SceneErrorDialog extends React.Component { render() { const { props } = this; - const { error, onClose, theme } = props; + const { error, onClose, theme, locale } = props; return ( - + sprintf(str, error.code)), locale)} + onClose={onClose} + > {error.message} - Closing this dialog will take you back to the last well-known state. - If this error persists, please submit feedback. + {LocalizedString.lookup(tr('Closing this dialog will take you back to the last well-known state.'), locale)} + {LocalizedString.lookup(tr('If this error persists, please submit feedback.'), locale)} @@ -43,4 +59,6 @@ class SceneErrorDialog extends React.Component { } } -export default SceneErrorDialog; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(SceneErrorDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/SceneSettings.tsx b/src/components/SceneSettings.tsx index c0911bfa..5855e374 100644 --- a/src/components/SceneSettings.tsx +++ b/src/components/SceneSettings.tsx @@ -8,12 +8,22 @@ import Field from './Field'; import Input from './Input'; import { ThemeProps } from './theme'; -export interface SceneSettingsProps extends StyleProps, ThemeProps { +import tr from '@i18n'; + +import { connect } from 'react-redux'; + +import { State as ReduxState } from '../state'; + +export interface SceneSettingsPublicProps extends StyleProps, ThemeProps { scene: Scene; onSceneChange: (scene: Scene) => void; } -type Props = SceneSettingsProps; +interface SceneSettingsPrivateProps { + locale: LocalizedString.Language; +} + +type Props = SceneSettingsPublicProps & SceneSettingsPrivateProps; const Container = styled('div', { display: 'flex', @@ -23,42 +33,48 @@ const Container = styled('div', { class SceneSettings extends React.Component { private onNameChange_ = (event: React.SyntheticEvent) => { const { props } = this; - const { scene, onSceneChange } = props; + const { scene, onSceneChange, locale } = props; onSceneChange({ ...scene, - name: { [LocalizedString.EN_US]: event.currentTarget.value } + name: { + ...(scene.name || {}), + [locale]: event.currentTarget.value + } }); }; private onDescriptionChange_ = (event: React.SyntheticEvent) => { const { props } = this; - const { scene, onSceneChange } = props; + const { scene, onSceneChange, locale } = props; onSceneChange({ ...scene, - description: { [LocalizedString.EN_US]: event.currentTarget.value } + description: { + ...(scene.description || {}), + [locale]: event.currentTarget.value + } }); }; render() { const { props } = this; - const { scene, style, className, theme } = props; + const { scene, style, className, theme, locale } = props; return ( - + - + @@ -67,4 +83,6 @@ class SceneSettings extends React.Component { } } -export default SceneSettings; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(SceneSettings) as React.ComponentType; \ No newline at end of file diff --git a/src/components/SceneSettingsDialog.tsx b/src/components/SceneSettingsDialog.tsx index c3c050ce..47b0f9ef 100644 --- a/src/components/SceneSettingsDialog.tsx +++ b/src/components/SceneSettingsDialog.tsx @@ -10,18 +10,29 @@ import DialogBar from './DialogBar'; import { faCheck } from '@fortawesome/free-solid-svg-icons'; import deepNeq from '../deepNeq'; -export interface SceneSettingsDialogProps extends ThemeProps, StyleProps { +import tr from '@i18n'; + +import { connect } from 'react-redux'; + +import { State as ReduxState } from '../state'; +import LocalizedString from '../util/LocalizedString'; + +export interface SceneSettingsDialogPublicProps extends ThemeProps, StyleProps { scene: Scene; onClose: () => void; onAccept: (scene: Scene) => void; } +interface SceneSettingsDialogPrivateProps { + locale: LocalizedString.Language; +} + interface SceneSettingsDialogState { scene: Scene; } -type Props = SceneSettingsDialogProps; +type Props = SceneSettingsDialogPublicProps & SceneSettingsDialogPrivateProps; type State = SceneSettingsDialogState; const StyledSceneSettings = styled(SceneSettings, ({ theme }: ThemeProps) => ({ @@ -38,7 +49,7 @@ class SceneSettingsDialog extends React.PureComponent { }; } - componentDidUpdate(prevProps: Readonly, prevState: Readonly): void { + componentDidUpdate(prevProps: Readonly, prevState: Readonly): void { if (deepNeq(prevProps.scene.name, this.props.scene.name) || deepNeq(prevProps.scene.description, this.props.scene.description)) { this.setState({ scene: this.props.scene }); } @@ -50,20 +61,26 @@ class SceneSettingsDialog extends React.PureComponent { render() { const { props, state } = this; - const { theme, onClose } = props; + const { theme, onClose, locale } = props; const { scene } = state; return ( - + - Accept + {LocalizedString.lookup(tr('Accept'), locale)} ); } } -export default SceneSettingsDialog; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(SceneSettingsDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/SettingsDialog.tsx b/src/components/SettingsDialog.tsx index 29fd760b..5d1b0a26 100644 --- a/src/components/SettingsDialog.tsx +++ b/src/components/SettingsDialog.tsx @@ -7,19 +7,33 @@ import ScrollArea from './ScrollArea'; import { Switch } from './Switch'; import { ThemeProps } from './theme'; -type SettingsSection = 'simulation' | 'editor'; +import tr from '@i18n'; +import LocalizedString from '../util/LocalizedString'; +import ComboBox from './ComboBox'; +import Dict from '../Dict'; -export interface SettingsDialogProp extends ThemeProps, StyleProps { +import { State as ReduxState } from '../state'; +import { I18nAction } from '../state/reducer'; +import { connect } from 'react-redux'; + +type SettingsSection = 'user-interface' | 'simulation' | 'editor'; + +export interface SettingsDialogPublicProps extends ThemeProps, StyleProps { onClose: () => void; settings: Settings; onSettingsChange: (settings: Partial) => void; } +interface SettingsDialogPrivateProps { + locale: LocalizedString.Language; + onLocaleChange: (locale: LocalizedString.Language) => void; +} + interface SettingsDialogState { selectedSection: SettingsSection; } -type Props = SettingsDialogProp; +type Props = SettingsDialogPublicProps & SettingsDialogPrivateProps; type State = SettingsDialogState; const Container = styled('div', (props: ThemeProps) => ({ @@ -76,11 +90,26 @@ interface SectionProps { selected?: boolean; } -export class SettingsDialog extends React.PureComponent { +const LOCALE_OPTIONS: ComboBox.Option[] = (() => { + const ret = []; + for (const locale of [ LocalizedString.EN_US, LocalizedString.JA_JP ]) { + ret.push({ + text: LocalizedString.NATIVE_LOCALE_NAMES[locale], + data: locale, + }); + } + return ret; +})(); + +const StyledComboBox = styled(ComboBox, { + flex: '1 1', +}); + +class SettingsDialog extends React.PureComponent { constructor(props: Props) { super(props); this.state = { - selectedSection: 'simulation', + selectedSection: 'user-interface', }; } @@ -104,30 +133,74 @@ export class SettingsDialog extends React.PureComponent { ); }; + private onLocaleSelect_ = (index: number, option: ComboBox.Option) => { + this.props.onLocaleChange(option.data as LocalizedString.Language); + }; + + render() { const { props, state } = this; - const { style, className, theme, onClose } = props; + const { style, className, theme, onClose, locale } = props; const { selectedSection } = state; return ( - - + + - this.setSelectedSection('simulation')}>Simulation - this.setSelectedSection('editor')}>Editor + this.setSelectedSection('user-interface')} + > + {LocalizedString.lookup(tr('User Interface'), locale)} + + this.setSelectedSection('simulation')} + > + {LocalizedString.lookup(tr('Simulation'), locale)} + + this.setSelectedSection('editor')} + > + {LocalizedString.lookup(tr('Editor'), locale)} + + {selectedSection === 'user-interface' && ( + <> + + + {LocalizedString.lookup(tr('Locale'), locale)} + {LocalizedString.lookup(tr('Switch languages'), locale)} + + opt.data === locale)} + onSelect={this.onLocaleSelect_} + theme={theme} + /> + + + )} {selectedSection === 'simulation' && ( <> {this.createBooleanSetting( - 'Sensor noise', - 'Controls whether sensor outputs are affected by random noise', + LocalizedString.lookup(tr('Sensor noise'), locale), + LocalizedString.lookup(tr('Controls whether sensor outputs are affected by random noise'), locale), (settings: Settings) => settings.simulationSensorNoise, (newValue: boolean) => ({ simulationSensorNoise: newValue }) )} {this.createBooleanSetting( - 'Realistic sensors', - 'Controls whether sensors behave like real-world sensors instead of like ideal sensors. For example, real-world ET sensors are nonlinear', + LocalizedString.lookup(tr('Realistic sensors'), locale), + LocalizedString.lookup(tr('Controls whether sensors behave like real-world sensors instead of like ideal sensors. For example, real-world ET sensors are nonlinear'), locale), (settings: Settings) => settings.simulationRealisticSensors, (newValue: boolean) => ({ simulationRealisticSensors: newValue }) )} @@ -136,8 +209,8 @@ export class SettingsDialog extends React.PureComponent { {selectedSection === 'editor' && ( <> {this.createBooleanSetting( - 'Autocomplete', - 'Controls autocompletion of code, brackets, and quotes', + LocalizedString.lookup(tr('Autocomplete'), locale), + LocalizedString.lookup(tr('Controls autocompletion of code, brackets, and quotes'), locale), (settings: Settings) => settings.editorAutoComplete, (newValue: boolean) => ({ editorAutoComplete: newValue }) )} @@ -148,4 +221,10 @@ export class SettingsDialog extends React.PureComponent { ); } -} \ No newline at end of file +} + +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale +}), dispatch => ({ + onLocaleChange: (locale: LocalizedString.Language) => dispatch(I18nAction.setLocale({ locale })), +}))(SettingsDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/SimMenu.tsx b/src/components/SimMenu.tsx index 9ddf77af..fa619681 100644 --- a/src/components/SimMenu.tsx +++ b/src/components/SimMenu.tsx @@ -8,6 +8,19 @@ import { Layout, LayoutPicker } from './Layout'; import { SimulatorState } from './SimulatorState'; import { GREEN, RED, ThemeProps } from './theme'; +import tr from '@i18n'; + +import { connect } from 'react-redux'; + +import { State as ReduxState } from '../state'; + +import KIPR_LOGO_BLACK from '../assets/KIPR-Logo-Black-Text-Clear-Large.png'; +import KIPR_LOGO_WHITE from '../assets/KIPR-Logo-White-Text-Clear-Large.png'; +import { faBars, faBook, faClone, faCogs, faCommentDots, faGlobeAmericas, faPlay, faQuestion, faSignOutAlt, faStop, faSync } from '@fortawesome/free-solid-svg-icons'; +import SceneMenu from './World/SceneMenu'; +import ExtraMenu from './ExtraMenu'; +import LocalizedString from '../util/LocalizedString'; + namespace SubMenu { export enum Type { None, @@ -43,7 +56,7 @@ namespace SubMenu { type SubMenu = SubMenu.None | SubMenu.LayoutPicker | SubMenu.SceneMenu | SubMenu.ExtraMenu; -export interface MenuProps extends StyleProps, ThemeProps { +export interface MenuPublicProps extends StyleProps, ThemeProps { layout: Layout; onLayoutChange: (layout: Layout) => void; @@ -72,19 +85,17 @@ export interface MenuProps extends StyleProps, ThemeProps { simulatorState: SimulatorState; } +interface MenuPrivateProps { + locale: LocalizedString.Language; +} + interface MenuState { subMenu: SubMenu; } -type Props = MenuProps; +type Props = MenuPublicProps & MenuPrivateProps; type State = MenuState; -import KIPR_LOGO_BLACK from '../assets/KIPR-Logo-Black-Text-Clear-Large.png'; -import KIPR_LOGO_WHITE from '../assets/KIPR-Logo-White-Text-Clear-Large.png'; -import { faBars, faBook, faClone, faCogs, faCommentDots, faGlobeAmericas, faPlay, faQuestion, faSignOutAlt, faStop, faSync } from '@fortawesome/free-solid-svg-icons'; -import SceneMenu from './World/SceneMenu'; -import ExtraMenu from './ExtraMenu'; - const Container = styled('div', (props: ThemeProps) => ({ backgroundColor: props.theme.backgroundColor, color: props.theme.color, @@ -242,7 +253,8 @@ class SimMenu extends React.PureComponent { onSaveAsSceneClick: onCopySceneClick, onSettingsSceneClick, onDeleteSceneClick, - simulatorState + simulatorState, + locale } = props; const { subMenu } = state; @@ -255,7 +267,7 @@ class SimMenu extends React.PureComponent { disabled={false} > - Stop + {LocalizedString.lookup(tr('Stop', 'Terminate program execution'), locale)} ) : ( { style={{ borderLeft: `1px solid ${theme.borderColor}` }} > - Run + {LocalizedString.lookup(tr('Run', 'Begin program execution'), locale)} ); @@ -330,4 +342,6 @@ class SimMenu extends React.PureComponent { } } -export default SimMenu; +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(SimMenu) as React.ComponentType; diff --git a/src/components/SimulatorArea.tsx b/src/components/SimulatorArea.tsx index a56ec951..9eace61a 100644 --- a/src/components/SimulatorArea.tsx +++ b/src/components/SimulatorArea.tsx @@ -11,6 +11,11 @@ import Loading from './Loading'; import MotorsSwappedDialog from './MotorsSwappedDialog'; import { Theme } from './theme'; +import LocalizedString from '../util/LocalizedString'; +import tr from '@i18n'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../state'; + namespace ModalDialog { export enum Type { None, @@ -59,12 +64,18 @@ namespace ModalDialog { type ModalDialog = ModalDialog.None | ModalDialog.MotorsSwapped; -export interface SimulatorAreaProps { +export interface SimulatorAreaPublicProps { theme: Theme; isSensorNoiseEnabled: boolean; isRealisticSensorsEnabled: boolean; } +interface SimulatorAreaPrivateProps { + locale: LocalizedString.Language; +} + +type Props = SimulatorAreaPublicProps & SimulatorAreaPrivateProps; + interface SimulatorAreaState { loading: boolean; loadingMessage: string; @@ -85,11 +96,11 @@ const Canvas = styled('canvas', { touchAction: 'none', }); -export class SimulatorArea extends React.Component { +export class SimulatorArea extends React.Component { private containerRef_: HTMLDivElement; private canvasRef_: HTMLCanvasElement; - constructor(props: SimulatorAreaProps) { + constructor(props: Props) { super(props); this.state = { loading: true, @@ -104,13 +115,17 @@ export class SimulatorArea extends React.Component { if (this.state.loading) { - this.setState({ loadingMessage: 'This process is taking longer than expected...\nIf you have a poor internet connection, this can take some time' }); + this.setState({ + loadingMessage: LocalizedString.lookup(tr('This process is taking longer than expected...\nIf you have a poor internet connection, this can take some time'), this.props.locale) + }); } }, 30 * 1000); // 120 second message: likely failed setTimeout(() => { if (this.state.loading) { - this.setState({ loadingMessage: 'The simulator may have failed to load.\nPlease submit a feedback form to let us know!' }); + this.setState({ + loadingMessage: LocalizedString.lookup(tr('The simulator may have failed to load.\nPlease submit a feedback form to let us know!'), this.props.locale) + }); } }, 120 * 1000); @@ -149,7 +164,7 @@ export class SimulatorArea extends React.Component @@ -199,3 +214,7 @@ export class SimulatorArea extends React.Component ({ + locale: state.i18n.locale, +}))(SimulatorArea) as React.ComponentType; diff --git a/src/components/ValueEdit/index.tsx b/src/components/ValueEdit/index.tsx index 31f66e62..a202bcc7 100644 --- a/src/components/ValueEdit/index.tsx +++ b/src/components/ValueEdit/index.tsx @@ -5,14 +5,24 @@ import { Angle, Distance, EMPTY_OBJECT, Mass, Slow, Value } from '../../util'; import { ThemeProps } from '../theme'; import Field from '../Field'; import ComboBox from '../ComboBox'; +import LocalizedString from '../../util/LocalizedString'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; +import tr from '@i18n'; -export interface ValueEditProps extends ThemeProps, StyleProps { +export interface ValueEditPublicProps extends ThemeProps, StyleProps { name: string; long?: boolean; value: Value; onValueChange: (value: Value) => void; } +interface ValueEditPrivateProps { + locale: LocalizedString.Language; +} + + + interface ValueEditState { input: string; hasFocus: boolean; @@ -20,7 +30,7 @@ interface ValueEditState { unitFocus: boolean; } -type Props = ValueEditProps; +type Props = ValueEditPublicProps & ValueEditPrivateProps; type State = ValueEditState; const SubContainer = styled('div', (props: ThemeProps) => ({ @@ -69,30 +79,7 @@ const StyledComboBox = styled(ComboBox, (props: ThemeProps) => ({ const NUMBER_REGEX = /^[+-]?([0-9]*[.])?[0-9]+$/; -const MASS_OPTIONS: ComboBox.Option[] = [ - ComboBox.option('grams', Mass.Type.Grams), - ComboBox.option('kilograms', Mass.Type.Kilograms), - ComboBox.option('pounds', Mass.Type.Pounds), - ComboBox.option('ounces', Mass.Type.Ounces), -]; - -const DISTANCE_OPTIONS: ComboBox.Option[] = [ - ComboBox.option('meters', 'meters'), - ComboBox.option('centimeters', 'centimeters'), - ComboBox.option('feet', 'feet'), - ComboBox.option('inches', 'inches'), -]; - -const ANGLE_OPTIONS: ComboBox.Option[] = [ - ComboBox.option('radians', Angle.Type.Radians), - ComboBox.option('degrees', Angle.Type.Degrees), -]; -const VALUE_OPTIONS: { [key: number]: ComboBox.Option[] } = { - [Value.Type.Angle]: ANGLE_OPTIONS, - [Value.Type.Distance]: DISTANCE_OPTIONS, - [Value.Type.Mass]: MASS_OPTIONS, -}; @@ -184,12 +171,37 @@ export class ValueEdit extends React.PureComponent { render() { const { props, state } = this; - const { theme, style, className, name, value, long } = props; + const { theme, style, className, name, value, long, locale } = props; const { input, unitFocus } = state; const errorStyle: React.CSSProperties = { backgroundColor: !state.valid ? `rgba(255, 0, 0, 0.2)` : undefined, }; + const massOptions: ComboBox.Option[] = [ + ComboBox.option(LocalizedString.lookup(tr('grams'), locale), Mass.Type.Grams), + ComboBox.option(LocalizedString.lookup(tr('kilograms'), locale), Mass.Type.Kilograms), + ComboBox.option(LocalizedString.lookup(tr('pounds'), locale), Mass.Type.Pounds), + ComboBox.option(LocalizedString.lookup(tr('ounces'), locale), Mass.Type.Ounces), + ]; + + const distanceOptions: ComboBox.Option[] = [ + ComboBox.option(LocalizedString.lookup(tr('meters'), locale), 'meters'), + ComboBox.option(LocalizedString.lookup(tr('centimeters'), locale), 'centimeters'), + ComboBox.option(LocalizedString.lookup(tr('feet'), locale), 'feet'), + ComboBox.option(LocalizedString.lookup(tr('inches'), locale), 'inches'), + ]; + + const angleOptions: ComboBox.Option[] = [ + ComboBox.option(LocalizedString.lookup(tr('radians'), locale), Angle.Type.Radians), + ComboBox.option(LocalizedString.lookup(tr('degrees'), locale), Angle.Type.Degrees), + ]; + + const VALUE_OPTIONS: { [key: number]: ComboBox.Option[] } = { + [Value.Type.Angle]: angleOptions, + [Value.Type.Distance]: distanceOptions, + [Value.Type.Mass]: massOptions, + }; + const unitOptions = VALUE_OPTIONS[value.type]; return ( @@ -223,4 +235,6 @@ export class ValueEdit extends React.PureComponent { } } -export default ValueEdit; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(ValueEdit) as React.ComponentType; \ No newline at end of file diff --git a/src/components/World/AddNodeDialog.tsx b/src/components/World/AddNodeDialog.tsx index ef6a8531..47b8933a 100644 --- a/src/components/World/AddNodeDialog.tsx +++ b/src/components/World/AddNodeDialog.tsx @@ -22,18 +22,25 @@ import { Fa } from "../Fa"; import { faCheck } from '@fortawesome/free-solid-svg-icons'; import LocalizedString from '../../util/LocalizedString'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; +import tr from '@i18n'; export interface AddNodeAcceptance { node: Node; geometry?: Geometry; } -export interface AddNodeDialogProps extends ThemeProps { +export interface AddNodeDialogPublicProps extends ThemeProps { scene: Scene; onAccept: (acceptance: AddNodeAcceptance) => void; onClose: () => void; } +interface AddNodeDialogPrivateProps { + locale: LocalizedString.Language; +} + interface AddNodeDialogState { id: string; node: Node; @@ -42,7 +49,7 @@ interface AddNodeDialogState { geometry: Geometry; } -type Props = AddNodeDialogProps; +type Props = AddNodeDialogPublicProps & AddNodeDialogPrivateProps; type State = AddNodeDialogState; const StyledScrollArea = styled(ScrollArea, (props: ThemeProps) => ({ @@ -73,7 +80,7 @@ class AddNodeDialog extends React.PureComponent { node: { type: 'from-template', templateId: 'can', - name: { [LocalizedString.EN_US]: 'Unnamed Object' }, + name: tr('Unnamed Object'), startingOrigin: origin, origin, editable: true, @@ -131,7 +138,7 @@ class AddNodeDialog extends React.PureComponent { render() { const { props, state } = this; - const { theme, onClose, scene } = props; + const { theme, onClose, scene, locale } = props; const { node, id } = state; // If there's a geometry in progress, create a temporary scene containing the geometry @@ -144,7 +151,7 @@ class AddNodeDialog extends React.PureComponent { }; return ( - + { /> - Accept + {LocalizedString.lookup(tr('Accept'), locale)} ); } } -export default AddNodeDialog; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(AddNodeDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/World/AddScriptDialog.tsx b/src/components/World/AddScriptDialog.tsx index 15e34dd8..9ef27c01 100644 --- a/src/components/World/AddScriptDialog.tsx +++ b/src/components/World/AddScriptDialog.tsx @@ -20,21 +20,30 @@ import { Fa } from "../Fa"; import { faCheck } from '@fortawesome/free-solid-svg-icons'; +import LocalizedString from '../../util/LocalizedString'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; +import tr from '@i18n'; + export interface AddScriptAcceptance { script: Script; } -export interface AddScriptDialogProps extends ThemeProps { +export interface AddScriptDialogPublicProps extends ThemeProps { onAccept: (acceptance: AddScriptAcceptance) => void; onClose: () => void; } +interface AddScriptDialogPrivateProps { + locale: LocalizedString.Language; +} + interface AddScriptDialogState { id: string; script: Script; } -type Props = AddScriptDialogProps; +type Props = AddScriptDialogPublicProps & AddScriptDialogPrivateProps; type State = AddScriptDialogState; const InnerContainer = styled('div', () => ({ @@ -67,11 +76,11 @@ class AddScriptDialog extends React.PureComponent { render() { const { props, state } = this; - const { theme, onClose } = props; + const { theme, onClose, locale } = props; const { script, id } = state; return ( - + { /> - Accept + {LocalizedString.lookup(tr('Accept'), locale)} ); } } -export default AddScriptDialog; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(AddScriptDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/World/NodeSettings.tsx b/src/components/World/NodeSettings.tsx index b7dc42a1..0de28228 100644 --- a/src/components/World/NodeSettings.tsx +++ b/src/components/World/NodeSettings.tsx @@ -27,6 +27,8 @@ import Robot from '../../state/State/Robot'; import { connect } from 'react-redux'; import Async from '../../state/State/Async'; +import tr from '@i18n'; + export interface NodeSettingsPublicProps extends ThemeProps { onNodeChange: (node: Node) => void; onNodeOriginChange: (origin: ReferenceFrame) => void; @@ -42,6 +44,7 @@ export interface NodeSettingsPublicProps extends ThemeProps { interface NodeSettingsPrivateProps { robots: Dict, Robot>>; + locale: LocalizedString.Language; } interface NodeSettingsState { @@ -77,104 +80,6 @@ const StyledScrollArea = styled(ScrollArea, (props: ThemeProps) => ({ flex: '1 1', })); -const GEOMETRY_OPTIONS: ComboBox.Option[] = [ - ComboBox.option('Box', 'box'), - ComboBox.option('Sphere', 'sphere'), - ComboBox.option('Cylinder', 'cylinder'), - ComboBox.option('Cone', 'cone'), - ComboBox.option('Plane', 'plane'), - ComboBox.option('File', 'file'), -]; - -const GEOMETRY_REVERSE_OPTIONS: Dict = GEOMETRY_OPTIONS.reduce((dict, option, i) => { - dict[option.data as string] = i; - return dict; -}, {}); - - -const TEMPLATE_OPTIONS: ComboBox.Option[] = [ - ComboBox.option('Can', 'can'), - ComboBox.option('Paper Ream', 'ream'), -]; - -const TEMPLATE_REVERSE_OPTIONS: Dict = TEMPLATE_OPTIONS.reduce((dict, option, i) => { - dict[option.data as string] = i; - return dict; -}, {}); - -const ROTATION_TYPES: ComboBox.Option[] = [ - ComboBox.option('Euler', 'euler'), - ComboBox.option('Axis Angle', 'angle-axis'), -]; - -const EULER_ORDER_OPTIONS: ComboBox.Option[] = [ - ComboBox.option('XYZ', 'xyz'), - ComboBox.option('YZX', 'yzx'), - ComboBox.option('ZXY', 'zxy'), - ComboBox.option('XZY', 'xzy'), - ComboBox.option('YXZ', 'yxz'), - ComboBox.option('ZYX', 'zyx'), -]; - -const NODE_TYPE_OPTIONS: ComboBox.Option[] = [ - ComboBox.option('Empty', 'empty'), - ComboBox.option('Standard Object', 'from-template'), - ComboBox.option('Custom Object', 'object'), - // ComboBox.option('Directional Light', 'directional-light'), - ComboBox.option('Point Light', 'point-light'), - // ComboBox.option('Spot Light', 'spot-light'), -]; - -const NODE_TYPE_OPTIONS_REV = (() => { - const map: Record = {}; - NODE_TYPE_OPTIONS.forEach((option, i) => { - map[option.data as string] = i; - }); - return map; -})(); - -const MATERIAL_TYPE_OPTIONS: ComboBox.Option[] = [ - ComboBox.option('Unset', 'unset'), - ComboBox.option('Basic', 'basic'), - // ComboBox.option('PBR', 'pbr'), -]; - -const MATERIAL_TYPE_OPTIONS_REV = (() => { - const map: Record = {}; - MATERIAL_TYPE_OPTIONS.forEach((option, i) => { - map[option.data as string] = i; - }); - return map; -})(); - -const MATERIAL_SOURCE3_TYPE_OPTIONS: ComboBox.Option[] = [ - ComboBox.option('Unset', 'unset'), - ComboBox.option('RGB', 'color3'), - ComboBox.option('Texture', 'texture'), -]; - -const MATERIAL_SOURCE3_TYPE_OPTIONS_REV = (() => { - const map: Record = {}; - MATERIAL_SOURCE3_TYPE_OPTIONS.forEach((option, i) => { - map[option.data as string] = i; - }); - return map; -})(); - -const MATERIAL_SOURCE1_TYPE_OPTIONS: ComboBox.Option[] = [ - ComboBox.option('Unset', 'unset'), - ComboBox.option('Value', 'color1'), - ComboBox.option('Texture', 'texture'), -]; - -const MATERIAL_SOURCE1_TYPE_OPTIONS_REV = (() => { - const map: Record = {}; - MATERIAL_SOURCE3_TYPE_OPTIONS.forEach((option, i) => { - map[option.data as string] = i; - }); - return map; -})(); - class NodeSettings extends React.PureComponent { constructor(props: Props) { super(props); @@ -224,12 +129,15 @@ class NodeSettings extends React.PureComponent { private onNameChange_ = (event: React.SyntheticEvent) => { this.props.onNodeChange({ ...this.props.node, - name: { [LocalizedString.EN_US]: event.currentTarget.value } + name: { + ...this.props.node.name, + [this.props.locale]: event.currentTarget.value + } }); }; private onTypeSelect_ = (index: number, option: ComboBox.Option) => { - const { node } = this.props; + const { node, locale } = this.props; // If the type didn't change, do nothing const selectedType = option.data as Node.Type; @@ -239,6 +147,11 @@ class NodeSettings extends React.PureComponent { let transmutedNode = Node.transmute(node, selectedType); + const TEMPLATE_OPTIONS: ComboBox.Option[] = [ + ComboBox.option(LocalizedString.lookup(tr('Can'), locale), 'can'), + ComboBox.option(LocalizedString.lookup(tr('Paper Ream'), locale), 'ream'), + ]; + // If the new type is from a template, set the template ID to a default value if (transmutedNode.type === 'from-template') { const defaultTemplateId = TEMPLATE_OPTIONS[0].data as string; @@ -928,7 +841,7 @@ class NodeSettings extends React.PureComponent { render() { const { props, state } = this; - const { theme, node, scene, id, robots } = props; + const { theme, node, scene, id, robots, locale } = props; const { collapsed } = state; // const { parentId } = node; @@ -966,16 +879,114 @@ class NodeSettings extends React.PureComponent { const robotOptions: ComboBox.Option[] = Dict.toList(robots) .map(([id, robot]) => ([id, Async.latestValue(robot)])) .filter(([, robot]: [string, Robot]) => robot !== undefined) - .map(([id, robot]: [string, Robot]) => ComboBox.option(LocalizedString.lookup(robot.name, LocalizedString.EN_US), id)); + .map(([id, robot]: [string, Robot]) => ComboBox.option(LocalizedString.lookup(robot.name, locale), id)); + + const GEOMETRY_OPTIONS: ComboBox.Option[] = [ + ComboBox.option(LocalizedString.lookup(tr('Box'), locale), 'box'), + ComboBox.option(LocalizedString.lookup(tr('Sphere'), locale), 'sphere'), + ComboBox.option(LocalizedString.lookup(tr('Cylinder'), locale), 'cylinder'), + ComboBox.option(LocalizedString.lookup(tr('Cone'), locale), 'cone'), + ComboBox.option(LocalizedString.lookup(tr('Plane'), locale), 'plane'), + ComboBox.option(LocalizedString.lookup(tr('File'), locale), 'file'), + ]; + + const GEOMETRY_REVERSE_OPTIONS: Dict = GEOMETRY_OPTIONS.reduce((dict, option, i) => { + dict[option.data as string] = i; + return dict; + }, {}); + + + const TEMPLATE_OPTIONS: ComboBox.Option[] = [ + ComboBox.option(LocalizedString.lookup(tr('Can'), locale), 'can'), + ComboBox.option(LocalizedString.lookup(tr('Paper Ream'), locale), 'ream'), + ]; + + const TEMPLATE_REVERSE_OPTIONS: Dict = TEMPLATE_OPTIONS.reduce((dict, option, i) => { + dict[option.data as string] = i; + return dict; + }, {}); + + const ROTATION_TYPES: ComboBox.Option[] = [ + ComboBox.option(LocalizedString.lookup(tr('Euler'), locale), 'euler'), + ComboBox.option(LocalizedString.lookup(tr('Axis Angle'), locale), 'angle-axis'), + ]; + + const EULER_ORDER_OPTIONS: ComboBox.Option[] = [ + ComboBox.option('XYZ', 'xyz'), + ComboBox.option('YZX', 'yzx'), + ComboBox.option('ZXY', 'zxy'), + ComboBox.option('XZY', 'xzy'), + ComboBox.option('YXZ', 'yxz'), + ComboBox.option('ZYX', 'zyx'), + ]; + + const NODE_TYPE_OPTIONS: ComboBox.Option[] = [ + ComboBox.option(LocalizedString.lookup(tr('Empty'), locale), 'empty'), + ComboBox.option(LocalizedString.lookup(tr('Standard Object'), locale), 'from-template'), + ComboBox.option(LocalizedString.lookup(tr('Custom Object'), locale), 'object'), + // ComboBox.option('Directional Light', 'directional-light'), + ComboBox.option(LocalizedString.lookup(tr('Point Light'), locale), 'point-light'), + // ComboBox.option('Spot Light', 'spot-light'), + ]; + + const NODE_TYPE_OPTIONS_REV = (() => { + const map: Record = {}; + NODE_TYPE_OPTIONS.forEach((option, i) => { + map[option.data as string] = i; + }); + return map; + })(); + + const MATERIAL_TYPE_OPTIONS: ComboBox.Option[] = [ + ComboBox.option(LocalizedString.lookup(tr('Unset'), locale), 'unset'), + ComboBox.option(LocalizedString.lookup(tr('Basic'), locale), 'basic'), + // ComboBox.option('PBR', 'pbr'), + ]; + + const MATERIAL_TYPE_OPTIONS_REV = (() => { + const map: Record = {}; + MATERIAL_TYPE_OPTIONS.forEach((option, i) => { + map[option.data as string] = i; + }); + return map; + })(); + + const MATERIAL_SOURCE3_TYPE_OPTIONS: ComboBox.Option[] = [ + ComboBox.option(LocalizedString.lookup(tr('Unset'), locale), 'unset'), + ComboBox.option(LocalizedString.lookup(tr('RGB', 'Red, Green, Blue'), locale), 'color3'), + ComboBox.option(LocalizedString.lookup(tr('Texture'), locale), 'texture'), + ]; + + const MATERIAL_SOURCE3_TYPE_OPTIONS_REV = (() => { + const map: Record = {}; + MATERIAL_SOURCE3_TYPE_OPTIONS.forEach((option, i) => { + map[option.data as string] = i; + }); + return map; + })(); + + const MATERIAL_SOURCE1_TYPE_OPTIONS: ComboBox.Option[] = [ + ComboBox.option(LocalizedString.lookup(tr('Unset'), locale), 'unset'), + ComboBox.option(LocalizedString.lookup(tr('Value'), locale), 'color1'), + ComboBox.option(LocalizedString.lookup(tr('Texture'), locale), 'texture'), + ]; + + const MATERIAL_SOURCE1_TYPE_OPTIONS_REV = (() => { + const map: Record = {}; + MATERIAL_SOURCE3_TYPE_OPTIONS.forEach((option, i) => { + map[option.data as string] = i; + }); + return map; + })(); return ( -
- +
+ @@ -984,7 +995,7 @@ class NodeSettings extends React.PureComponent { */} {node.type !== 'robot' && ( - + { )} {node.type === 'robot' && ( - + { )} {node.type === 'object' && ( - + { )} {node.type === 'from-template' && ( - + {
{(node.type === 'object' && geometry && geometry.type === 'box') ? (
{ ) : undefined} {(node.type === 'object' && geometry.type === 'sphere') ? (
{ ) : undefined} {(node.type === 'object' && geometry.type === 'cylinder') ? (
{
) : undefined} {(node.type === 'object' && geometry.type === 'plane') ? ( -
+
{ ) : undefined} {(node.type === 'object' && geometry.type === 'file') ? ( -
- +
+
) : undefined} {node.type === 'object' ? ( -
- +
+ {/* Basic Color */} {node.material && node.material.type === 'basic' && ( - + { {node.material && node.material.type === 'basic' && node.material.color && node.material.color.type === 'color3' && ( <> { )} {node.material && node.material.type === 'basic' && node.material.color && node.material.color.type === 'texture' && ( - + )} {/* Albedo */} {node.material && node.material.type === 'pbr' && ( - + { {node.material && node.material.type === 'pbr' && node.material.albedo && node.material.albedo.type === 'color3' && ( <> { )} {node.material && node.material.type === 'pbr' && node.material.albedo && node.material.albedo.type === 'texture' && ( - + )} {/* Reflection */} {node.material && node.material.type === 'pbr' && ( - + { {node.material && node.material.type === 'pbr' && node.material.reflection && node.material.reflection.type === 'color3' && ( <> { )} {node.material && node.material.type === 'pbr' && node.material.reflection && node.material.reflection.type === 'texture' && ( - + )} {/* Emissive */} {node.material && node.material.type === 'pbr' && ( - + { {node.material && node.material.type === 'pbr' && node.material.emissive && node.material.emissive.type === 'color3' && ( <> { )} {node.material && node.material.type === 'pbr' && node.material.emissive && node.material.emissive.type === 'texture' && ( - + )} {/* Ambient */} {node.material && node.material.type === 'pbr' && ( - + { {node.material && node.material.type === 'pbr' && node.material.ambient && node.material.ambient.type === 'color3' && ( <> { )} {node.material && node.material.type === 'pbr' && node.material.ambient && node.material.ambient.type === 'texture' && ( - + )} @@ -1342,7 +1353,7 @@ class NodeSettings extends React.PureComponent { {/* Metalness */} {node.material && node.material.type === 'pbr' && ( - + { {node.material && node.material.type === 'pbr' && node.material.metalness && node.material.metalness.type === 'color1' && ( <> { )} {node.material && node.material.type === 'pbr' && node.material.metalness && node.material.metalness.type === 'texture' && ( - + )}
) : undefined}
{ />
- + r.data === orientation.type)} onSelect={this.onRotationTypeChange_} /> {orientation.type === 'euler' ? ( <> - + { ) : ( <> { )}
{
{node.type === 'object' && (
- - + +
)} @@ -1529,5 +1540,6 @@ const PHSYICS_TYPE_MAPPINGS: { [key in Geometry.Type]: Node.Physics.Type } = { export default connect((state: ReduxState, ownProps: NodeSettingsPublicProps) => { return { robots: state.robots.robots, + locale: state.i18n.locale, }; })(NodeSettings) as React.ComponentType; \ No newline at end of file diff --git a/src/components/World/NodeSettingsDialog.tsx b/src/components/World/NodeSettingsDialog.tsx index d0c54c25..6c00d5e9 100644 --- a/src/components/World/NodeSettingsDialog.tsx +++ b/src/components/World/NodeSettingsDialog.tsx @@ -9,10 +9,13 @@ import Node from '../../state/State/Scene/Node'; import Scene from "../../state/State/Scene"; import Geometry from "../../state/State/Scene/Geometry"; import LocalizedString from '../../util/LocalizedString'; +import tr from '@i18n'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; export type NodeSettingsAcceptance = Node; -export interface NodeSettingsDialogProps extends ThemeProps { +export interface NodeSettingsDialogPublicProps extends ThemeProps { node: Node; id: string; scene: Scene; @@ -27,10 +30,14 @@ export interface NodeSettingsDialogProps extends ThemeProps { onClose: () => void; } +interface NodeSettingsDialogPrivateProps { + locale: LocalizedString.Language; +} + interface NodeSettingsDialogState { } -type Props = NodeSettingsDialogProps; +type Props = NodeSettingsDialogPublicProps & NodeSettingsDialogPrivateProps; type State = NodeSettingsDialogState; const StyledScrollArea = styled(ScrollArea, (props: ThemeProps) => ({ @@ -47,10 +54,10 @@ class NodeSettingsDialog extends React.PureComponent { render() { const { props, state } = this; - const { theme, onClose, onChange, onOriginChange, node, id, scene, onGeometryAdd, onGeometryChange, onGeometryRemove } = props; + const { theme, onClose, onChange, onOriginChange, node, id, scene, onGeometryAdd, onGeometryChange, onGeometryRemove, locale } = props; return ( - + { } } -export default NodeSettingsDialog; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(NodeSettingsDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/World/SceneMenu.tsx b/src/components/World/SceneMenu.tsx index cefc219a..fcd87d6b 100644 --- a/src/components/World/SceneMenu.tsx +++ b/src/components/World/SceneMenu.tsx @@ -6,7 +6,12 @@ import { Fa } from '../Fa'; import { ThemeProps } from '../theme'; import { faCaretSquareLeft, faClone, faCogs, faCopy, faEye, faEyeSlash, faFolderOpen, faPlus, faSave, faTrash } from '@fortawesome/free-solid-svg-icons'; -export interface SceneMenuProps extends StyleProps, ThemeProps { +import LocalizedString from '../../util/LocalizedString'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; +import tr from '@i18n'; + +export interface SceneMenuPublicProps extends StyleProps, ThemeProps { onSaveScene?: (event: React.MouseEvent) => void; onNewScene?: (event: React.MouseEvent) => void; onSaveAsScene?: (event: React.MouseEvent) => void; @@ -15,11 +20,15 @@ export interface SceneMenuProps extends StyleProps, ThemeProps { onDeleteScene?: (event: React.MouseEvent) => void; } +interface SceneMenuPrivateProps { + locale: LocalizedString.Language; +} + interface SceneMenuState { } -type Props = SceneMenuProps; +type Props = SceneMenuPublicProps & SceneMenuPrivateProps; type State = SceneMenuState; const Container = styled('div', (props: ThemeProps) => ({ @@ -82,17 +91,19 @@ class SceneMenu extends React.PureComponent { render() { const { props } = this; - const { theme, onSaveAsScene, onNewScene, onSaveScene, onOpenScene, onSettingsScene, onDeleteScene } = props; + const { theme, onSaveAsScene, onNewScene, onSaveScene, onOpenScene, onSettingsScene, onDeleteScene, locale } = props; return ( - Settings - Open - Save - Save As - Delete + {LocalizedString.lookup(tr('Settings'), locale)} + {LocalizedString.lookup(tr('Open'), locale)} + {LocalizedString.lookup(tr('Save'), locale)} + {LocalizedString.lookup(tr('Save As'), locale)} + {LocalizedString.lookup(tr('Delete'), locale)} ); } } -export default SceneMenu; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale +}))(SceneMenu) as React.ComponentType; \ No newline at end of file diff --git a/src/components/World/ScriptSettings.tsx b/src/components/World/ScriptSettings.tsx index bd9c64fd..c752c819 100644 --- a/src/components/World/ScriptSettings.tsx +++ b/src/components/World/ScriptSettings.tsx @@ -11,17 +11,26 @@ import { Ivygate } from 'ivygate'; import { Editor } from '../Editor'; import * as monaco from 'monaco-editor'; +import LocalizedString from '../../util/LocalizedString'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; +import tr from '@i18n'; -export interface ScriptSettingsProps extends ThemeProps { + +export interface ScriptSettingsPublicProps extends ThemeProps { onScriptChange: (script: Script) => void; script: Script; id: string; } +interface ScriptSettingsPrivateProps { + locale: LocalizedString.Language; +} + interface ScriptSettingsState { } -type Props = ScriptSettingsProps; +type Props = ScriptSettingsPublicProps & ScriptSettingsPrivateProps; type State = ScriptSettingsState; const StyledField = styled(Field, (props: ThemeProps) => ({ @@ -73,11 +82,11 @@ class ScriptSettings extends React.PureComponent { render() { const { props, state } = this; - const { theme, script, id } = props; + const { theme, script, id, locale } = props; return ( - + { } } -export default ScriptSettings; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(ScriptSettings) as React.ComponentType; \ No newline at end of file diff --git a/src/components/World/ScriptSettingsDialog.tsx b/src/components/World/ScriptSettingsDialog.tsx index 745749bf..4ba2df10 100644 --- a/src/components/World/ScriptSettingsDialog.tsx +++ b/src/components/World/ScriptSettingsDialog.tsx @@ -10,9 +10,14 @@ import DialogBar from '../DialogBar'; import { Fa } from '../Fa'; import { faCheck } from '@fortawesome/free-solid-svg-icons'; +import LocalizedString from '../../util/LocalizedString'; +import { connect } from 'react-redux'; +import { State as ReduxState } from '../../state'; +import tr from '@i18n'; + export type ScriptSettingsAcceptance = Script; -export interface ScriptSettingsDialogProps extends ThemeProps { +export interface ScriptSettingsDialogPublicProps extends ThemeProps { script: Script; id: string; @@ -20,11 +25,15 @@ export interface ScriptSettingsDialogProps extends ThemeProps { onAccept: (acceptance: ScriptSettingsAcceptance) => void; } +interface ScriptSettingsDialogPrivateProps { + locale: LocalizedString.Language; +} + interface ScriptSettingsDialogState { workingScript: Script; } -type Props = ScriptSettingsDialogProps; +type Props = ScriptSettingsDialogPublicProps & ScriptSettingsDialogPrivateProps; type State = ScriptSettingsDialogState; const InnerContainer = styled('div', () => ({ @@ -53,10 +62,10 @@ class ScriptSettingsDialog extends React.PureComponent { render() { const { props, state } = this; - const { theme, onClose, script, id } = props; + const { theme, onClose, script, id, locale } = props; return ( - + { /> - Accept + {LocalizedString.lookup(tr('Accept'), locale)} ); } } -export default ScriptSettingsDialog; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(ScriptSettingsDialog) as React.ComponentType; \ No newline at end of file diff --git a/src/components/World/index.tsx b/src/components/World/index.tsx index b8154278..43868543 100644 --- a/src/components/World/index.tsx +++ b/src/components/World/index.tsx @@ -42,6 +42,9 @@ import ScriptSettingsDialog, { ScriptSettingsAcceptance } from './ScriptSettings import { AsyncChallenge } from '../../state/State/Challenge'; import Builder from '../../db/Builder'; +import tr from '@i18n'; +import { sprintf } from 'sprintf-js'; + namespace SceneState { export enum Type { Clean, @@ -70,12 +73,13 @@ namespace SceneState { export type SceneState = SceneState.Clean | SceneState.Saveable | SceneState.Copyable; -export const createWorldBarComponents = ({ theme, saveable, onSelectScene, onSaveScene, onCopyScene }: { +export const createWorldBarComponents = ({ theme, saveable, onSelectScene, onSaveScene, onCopyScene, locale }: { theme: Theme, saveable: boolean, onSelectScene: () => void, onSaveScene: () => void, - onCopyScene: () => void + onCopyScene: () => void, + locale: LocalizedString.Language, }) => { // eslint-disable-next-line @typescript-eslint/ban-types const worldBar: BarComponent[] = []; @@ -86,7 +90,7 @@ export const createWorldBarComponents = ({ theme, saveable, onSelectScene, onSav children: <> - {' Select Scene'} + {' '} {LocalizedString.lookup(tr('Select Scene'), locale)} , })); @@ -97,7 +101,7 @@ export const createWorldBarComponents = ({ theme, saveable, onSelectScene, onSav children: <> - {' Save Scene'} + {' '} {LocalizedString.lookup(tr('Save Scene'), locale)} , })); @@ -107,7 +111,7 @@ export const createWorldBarComponents = ({ theme, saveable, onSelectScene, onSav children: <> - {' Copy Scene'} + {' '} {LocalizedString.lookup(tr('Copy Scene'), locale)} , })); @@ -136,7 +140,7 @@ export const DEFAULT_CAPABILITIES: Capabilities = { nodeReset: true, }; -export interface WorldProps extends StyleProps, ThemeProps { +export interface WorldPublicProps extends StyleProps, ThemeProps { scene: AsyncScene; onNodeAdd: (nodeId: string, node: Node) => void; @@ -156,8 +160,9 @@ export interface WorldProps extends StyleProps, ThemeProps { capabilities?: Capabilities; } -interface ReduxWorldProps { - + +interface WorldPrivateProps { + locale: LocalizedString.Language; } namespace UiState { @@ -215,7 +220,7 @@ interface WorldState { modal: UiState; } -type Props = WorldProps; +type Props = WorldPublicProps & WorldPrivateProps; type State = WorldState; const Container = styled('div', (props: ThemeProps) => ({ @@ -248,8 +253,8 @@ const SectionIcon = styled(Fa, (props: ThemeProps) => ({ transition: 'opacity 0.2s' })); -class World extends React.PureComponent { - constructor(props: Props & ReduxWorldProps) { +class World extends React.PureComponent { + constructor(props: Props) { super(props); this.state = { @@ -387,7 +392,8 @@ class World extends React.PureComponent { scene, onGeometryAdd, onGeometryRemove, - onGeometryChange + onGeometryChange, + locale } = props; const { collapsed, modal } = state; @@ -441,7 +447,7 @@ class World extends React.PureComponent { const itemsName = StyledText.compose({ items: [ StyledText.text({ - text: `Item${itemList.length === 1 ? '' : 's'} (${itemList.length})`, + text: LocalizedString.lookup(Dict.map(tr('Item(s) (%1)'), str => sprintf(str, itemList.length)), locale) }) ] }); @@ -460,7 +466,7 @@ class World extends React.PureComponent { const scriptsName = StyledText.compose({ items: [ StyledText.text({ - text: `Script${itemList.length === 1 ? '' : 's'} (${scriptList.length})`, + text: LocalizedString.lookup(Dict.map(tr('Script(s) (%1)'), str => sprintf(str, scriptList.length)), locale) }) ] }); @@ -547,4 +553,6 @@ class World extends React.PureComponent { } } -export default World; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(World) as React.ComponentType; \ No newline at end of file diff --git a/src/i18n.ts b/src/i18n.ts index 2da129ef..4fe8aa21 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -1,8 +1,10 @@ import Dict from './Dict'; import LocalizedString from './util/LocalizedString'; -const I18N = SIMULATOR_I18N as Dict; +export type I18n = Dict>; -export default (id: string, description?: string) => I18N[id] || { - [LocalizedString.EN_US]: id, +const I18N = SIMULATOR_I18N as I18n; + +export default (enUs: string, description?: string) => I18N[description || ''][enUs] || { + [LocalizedString.EN_US]: enUs, }; \ No newline at end of file diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 3bce9436..c70c4bd6 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -8,6 +8,10 @@ import { RouteComponentProps } from 'react-router'; import { connect } from 'react-redux'; import { push } from 'connected-react-router'; +import tr from '@i18n'; +import LocalizedString from '../util/LocalizedString'; +import { State } from '../state'; + export interface DashboardPublicProps extends RouteComponentProps, ThemeProps, StyleProps { @@ -16,6 +20,7 @@ export interface DashboardPublicProps extends RouteComponentProps, ThemeProps, S interface DashboardPrivateProps { onTutorialsClick: () => void; onSimulatorClick: () => void; + locale: LocalizedString.Language; } type Props = DashboardPublicProps & DashboardPrivateProps; @@ -61,7 +66,7 @@ class Dashboard extends React.PureComponent { render() { const { props } = this; - const { className, style, onTutorialsClick, onSimulatorClick } = props; + const { className, style, onTutorialsClick, onSimulatorClick, locale } = props; const theme = DARK; return ( @@ -70,24 +75,24 @@ class Dashboard extends React.PureComponent { { } } -export default connect(undefined, dispatch => ({ +export default connect((state: State) => ({ + locale: state.i18n.locale, +}), dispatch => ({ onTutorialsClick: () => dispatch(push('/tutorials')), onSimulatorClick: () => dispatch(push('/scene/jbcSandboxA')), }))(Dashboard) as React.ComponentType; \ No newline at end of file diff --git a/src/pages/Tutorials.tsx b/src/pages/Tutorials.tsx index fd9379cf..504b4161 100644 --- a/src/pages/Tutorials.tsx +++ b/src/pages/Tutorials.tsx @@ -8,14 +8,25 @@ import IFrame from '../components/IFrame'; import { tutorialList } from './tutorialList'; import { Vector2 } from '../math'; +import tr from '@i18n'; +import LocalizedString from '../util/LocalizedString'; +import { connect } from 'react-redux'; -export interface TutorialsProps extends StyleProps, ThemeProps {} +import { State as ReduxState } from '../state'; + + +export interface TutorialsPublicProps extends StyleProps, ThemeProps { +} + +interface TutorialsPrivateProps { + locale: LocalizedString.Language; +} interface TutorialsState { selected: string; } -type Props = TutorialsProps; +type Props = TutorialsPublicProps & TutorialsPrivateProps; type State = TutorialsState; const Container = styled('div', (props: ThemeProps) => ({ @@ -97,7 +108,7 @@ class Tutorials extends React.Component { render() { const { props, state } = this; - const { style } = props; + const { style, locale } = props; const { selected } = state; const theme = DARK; @@ -114,8 +125,8 @@ class Tutorials extends React.Component { {tutorialList.map((tutorial, index) => ( { } } -export default Tutorials; \ No newline at end of file +export default connect((state: ReduxState) => ({ + locale: state.i18n.locale, +}))(Tutorials) as React.ComponentType; \ No newline at end of file diff --git a/src/pages/WidgetTest.tsx b/src/pages/WidgetTest.tsx deleted file mode 100644 index f645abab..00000000 --- a/src/pages/WidgetTest.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import * as React from 'react'; -import PredicateEditor from '../components/Challenge/PredicateEditor'; -import HTree, { HTreeNode } from '../components/HTree'; -import Dict from '../Dict'; -import Event from '../state/State/Challenge/Event'; -import Expr from '../state/State/Challenge/Expr'; -import Predicate from '../state/State/Challenge/Predicate'; -import PredicateCompletion from '../state/State/ChallengeCompletion/PredicateCompletion'; -import LocalizedString from '../util/LocalizedString'; - -export interface WidgetTestProps { - -} - -const WidgetTest: React.FC = props => { - - const parent: HTreeNode = { - component: () =>
Parent
, - props: {}, - }; - - const predicate: Predicate = { - exprs: { - '1': { - type: Expr.Type.And, - argIds: ['2', '3'], - }, - '2': { - type: Expr.Type.Or, - argIds: ['4', '5'], - }, - '3': { - type: Expr.Type.Xor, - argIds: ['6', '7'], - }, - '4': { - type: Expr.Type.Event, - eventId: '8', - }, - '5': { - type: Expr.Type.Event, - eventId: '9', - }, - '6': { - type: Expr.Type.Event, - eventId: '10', - }, - '7': { - type: Expr.Type.Event, - eventId: '11', - }, - }, - rootId: '1', - }; - - const events: Dict = { - '8': { - name: { [LocalizedString.EN_US]: 'Event 8' }, - description: { [LocalizedString.EN_US]: 'Event 8 description' }, - }, - '9': { - name: { [LocalizedString.EN_US]: 'Event 9' }, - description: { [LocalizedString.EN_US]: 'Event 9 description' }, - }, - '10': { - name: { [LocalizedString.EN_US]: 'Event 10' }, - description: { [LocalizedString.EN_US]: 'Event 10 description' }, - }, - '11': { - name: { [LocalizedString.EN_US]: 'Event 11' }, - description: { [LocalizedString.EN_US]: 'Event 11 description' }, - }, - }; - - const predicateCompletion: PredicateCompletion = { - exprStates: { - '6': true, - '7': false, - }, - }; - - return ( - - ); -}; - -export default WidgetTest; - diff --git a/src/pages/interfaces/tutorial.interface.ts b/src/pages/interfaces/tutorial.interface.ts index 695b0ca5..81370336 100644 --- a/src/pages/interfaces/tutorial.interface.ts +++ b/src/pages/interfaces/tutorial.interface.ts @@ -1,6 +1,8 @@ +import LocalizedString from 'util/LocalizedString'; + export default interface Tutorial { - title?: string; - description?: string; + title?: LocalizedString; + description?: LocalizedString; src?: string; backgroundImage?: string; backgroundColor?: string; diff --git a/src/pages/tutorialList.ts b/src/pages/tutorialList.ts index a569eca6..6218ee50 100644 --- a/src/pages/tutorialList.ts +++ b/src/pages/tutorialList.ts @@ -1,29 +1,31 @@ import * as React from 'react'; import Tutorial from './interfaces/tutorial.interface'; +import tr from '@i18n'; + export const tutorialList: Tutorial [] = [ { - title: 'Quick Start', - description: 'Learn how to get started with the simulator', + title: tr('Quick Start'), + description: tr('Learn how to get started with the simulator'), backgroundColor: '#6c6ca1', backgroundImage: 'url(../../static/Laptop_Icon_Sunscreen.png)', src: 'https://www.youtube.com/embed/7Szf-iQjNCw', }, { - title: 'Navigating in 3D', - description: 'Learn the controls for navigating in 3D in the simulator', + title: tr('Navigating in 3D'), + description: tr('Learn the controls for navigating in 3D in the simulator'), backgroundImage: 'linear-gradient(#3b3c3c, transparent), url(../../static/Simulator_Full_View.png)', src: 'https://www.youtube.com/embed/RBpWIpBlYK8', }, { - title: 'Robot Section', - description: 'How to use the robot section', + title: tr('Robot Section'), + description: tr('How to use the robot section'), backgroundImage: 'url(../../static/Simulator-Robot-Closeup.png)', src: 'https://www.youtube.com/embed/SmYR1esidcc', }, { - title: 'World Section', - description: 'Learn how to create and manipulate items and scene in the simulator', + title: tr('World Section'), + description: tr('Learn how to create and manipulate items and scene in the simulator'), backgroundImage: 'linear-gradient(#3b3c3c, transparent), url(../../static/Can_Ream.png)', src: 'https://www.youtube.com/embed/K7GsS8s3Rfg', }, diff --git a/src/robots/demobot.ts b/src/robots/demobot.ts index 8982c826..9a91f053 100644 --- a/src/robots/demobot.ts +++ b/src/robots/demobot.ts @@ -6,14 +6,14 @@ import { Vector3 as RawVector3 } from '../math'; import { Rotation, Vector3 } from '../unit-math'; import LocalizedString from '../util/LocalizedString'; +import tr from '@i18n'; + const { meters } = Distance; const { degrees } = Angle; const { grams } = Mass; export const DEMOBOT: Robot = { - name: { - [LocalizedString.EN_US]: 'Demobot', - }, + name: tr('Demobot'), authorId: 'kipr', nodes: { chassis: Node.link({ diff --git a/src/scenes/jbc1.ts b/src/scenes/jbc1.ts index a65ee3cb..fbcdb538 100644 --- a/src/scenes/jbc1.ts +++ b/src/scenes/jbc1.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createCanNode, createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_1: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 1' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 1: Tag, You're It!` }, + name: tr('JBC 1'), + description: tr('Junior Botball Challenge 1: Tag, You\'re It!'), nodes: { ...baseScene.nodes, 'can9': createCanNode(9), diff --git a/src/scenes/jbc10.ts b/src/scenes/jbc10.ts index 7cfc3a8a..ce7e4d9c 100644 --- a/src/scenes/jbc10.ts +++ b/src/scenes/jbc10.ts @@ -4,12 +4,14 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceB, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceB(); export const JBC_10: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 10' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 10: Solo Joust' }, + name: tr('JBC 10'), + description: tr('Junior Botball Challenge 10: Solo Joust'), nodes: { ...baseScene.nodes, 'can1': createCanNode(1, { x: Distance.centimeters(11), y: Distance.centimeters(0), z: Distance.centimeters(91) }), diff --git a/src/scenes/jbc10b.ts b/src/scenes/jbc10b.ts index 9d9e19a4..78ca34b9 100644 --- a/src/scenes/jbc10b.ts +++ b/src/scenes/jbc10b.ts @@ -4,12 +4,14 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceB, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceB(); export const JBC_10B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 10B' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 10: Solo Joust Jr.' }, + name: tr('JBC 10B'), + description: tr('Junior Botball Challenge 10: Solo Joust Jr.'), nodes: { ...baseScene.nodes, 'can1': createCanNode(1, { x: Distance.centimeters(-13), y: Distance.centimeters(0), z: Distance.centimeters(17) }), // green line diff --git a/src/scenes/jbc12.ts b/src/scenes/jbc12.ts index 3b95c267..564184b1 100644 --- a/src/scenes/jbc12.ts +++ b/src/scenes/jbc12.ts @@ -4,12 +4,14 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_12: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 12' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 12: Unload 'Em` }, + name: tr('JBC 12'), + description: tr('Junior Botball Challenge 12: Unload \'Em'), nodes: { ...baseScene.nodes, 'can1': createCanNode(1, { x: Distance.centimeters(0), y: Distance.centimeters(0), z: Distance.centimeters(53.3) }), diff --git a/src/scenes/jbc13.ts b/src/scenes/jbc13.ts index ffa75f25..6db7e10f 100644 --- a/src/scenes/jbc13.ts +++ b/src/scenes/jbc13.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_13: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 13' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 13: Clean the Mat` }, + name: tr('JBC 13'), + description: tr('Junior Botball Challenge 13: Clean the Mat'), nodes: { ...baseScene.nodes, 'can2': createCanNode(2), diff --git a/src/scenes/jbc15b.ts b/src/scenes/jbc15b.ts index 86ad6d17..ee47e9f3 100644 --- a/src/scenes/jbc15b.ts +++ b/src/scenes/jbc15b.ts @@ -5,6 +5,8 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); const ROBOT_ORIGIN: ReferenceFrame = { @@ -41,8 +43,8 @@ const REAM2_ORIGIN: ReferenceFrame = { export const JBC_15B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 15B' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 15B: Bump Bump` }, + name: tr('JBC 15B'), + description: tr('Junior Botball Challenge 15B: Bump Bump'), nodes: { ...baseScene.nodes, // The normal starting position of the robot doesn't leave room for the paper ream in the starting box diff --git a/src/scenes/jbc17.ts b/src/scenes/jbc17.ts index 429c540c..f45f5342 100644 --- a/src/scenes/jbc17.ts +++ b/src/scenes/jbc17.ts @@ -4,10 +4,12 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceB } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceB(); export const JBC_17: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 17' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 17: Walk the Line' }, + name: tr('JBC 17'), + description: tr('Junior Botball Challenge 17: Walk the Line'), }; \ No newline at end of file diff --git a/src/scenes/jbc17b.ts b/src/scenes/jbc17b.ts index 38d0874f..de433ae5 100644 --- a/src/scenes/jbc17b.ts +++ b/src/scenes/jbc17b.ts @@ -5,6 +5,8 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceB } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceB(); const ROBOT_ORIGIN: ReferenceFrame = { @@ -17,8 +19,8 @@ const ROBOT_ORIGIN: ReferenceFrame = { export const JBC_17B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 17B' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 17: Walk the Line II' }, + name: tr('JBC 17B'), + description: tr('Junior Botball Challenge 17: Walk the Line II'), // Start the robot on the black tape nodes: { ...baseScene.nodes, diff --git a/src/scenes/jbc19.ts b/src/scenes/jbc19.ts index b342c5f0..76c0e769 100644 --- a/src/scenes/jbc19.ts +++ b/src/scenes/jbc19.ts @@ -5,6 +5,8 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); const REAM_ORIGIN: ReferenceFrame = { @@ -21,8 +23,8 @@ const REAM_ORIGIN: ReferenceFrame = { export const JBC_19: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 19' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 19: Mountain Rescue` }, + name: tr('JBC 19'), + description: tr('Junior Botball Challenge 19: Mountain Rescue'), nodes: { ...baseScene.nodes, 'can1': createCanNode(1, { x: Distance.centimeters(-3), y: Distance.centimeters(6), z: Distance.centimeters(98.6) }), @@ -31,7 +33,7 @@ export const JBC_19: Scene = { 'ream': { type: 'from-template', templateId: 'ream', - name: { [LocalizedString.EN_US]: 'Paper Ream' }, + name: tr('Paper Ream'), startingOrigin: REAM_ORIGIN, origin: REAM_ORIGIN, visible: true, diff --git a/src/scenes/jbc2.ts b/src/scenes/jbc2.ts index 97fa45d5..0f7f16ba 100644 --- a/src/scenes/jbc2.ts +++ b/src/scenes/jbc2.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createCanNode, createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_2: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 2' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 2: Ring Around the Can' }, + name: tr('JBC 2'), + description: tr('Junior Botball Challenge 2: Ring Around the Can'), nodes: { ...baseScene.nodes, 'can6': createCanNode(6), diff --git a/src/scenes/jbc20.ts b/src/scenes/jbc20.ts index 61e4e7c7..c07aa3e8 100644 --- a/src/scenes/jbc20.ts +++ b/src/scenes/jbc20.ts @@ -5,6 +5,8 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); const ROBOT_ORIGIN: ReferenceFrame = { @@ -25,8 +27,8 @@ const REAM_ORIGIN: ReferenceFrame = { export const JBC_20: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 20' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 20: Rescue the Cans` }, + name: tr('JBC 20'), + description: tr('Junior Botball Challenge 20: Rescue the Cans'), nodes: { ...baseScene.nodes, // The normal starting position of the robot doesn't leave room for the paper ream in the starting box @@ -43,7 +45,7 @@ export const JBC_20: Scene = { 'ream': { type: 'from-template', templateId: 'ream', - name: { [LocalizedString.EN_US]: 'Paper Ream' }, + name: tr('Paper Ream'), startingOrigin: REAM_ORIGIN, origin: REAM_ORIGIN, visible: true, diff --git a/src/scenes/jbc21.ts b/src/scenes/jbc21.ts index f3e5291b..dda7f2c7 100644 --- a/src/scenes/jbc21.ts +++ b/src/scenes/jbc21.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_21: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 21' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 21: Foot Tall` }, + name: tr('JBC 21'), + description: tr('Junior Botball Challenge 21: Foot Tall'), nodes: { ...baseScene.nodes, 'can9': createCanNode(9), diff --git a/src/scenes/jbc22.ts b/src/scenes/jbc22.ts index 44f86f02..76c75b2d 100644 --- a/src/scenes/jbc22.ts +++ b/src/scenes/jbc22.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_22: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 22' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 22: Stackerz` }, + name: tr('JBC 22'), + description: tr('Junior Botball Challenge 22: Stackerz'), nodes: { ...baseScene.nodes, 'can5': createCanNode(5), diff --git a/src/scenes/jbc2b.ts b/src/scenes/jbc2b.ts index accad53e..0d913553 100644 --- a/src/scenes/jbc2b.ts +++ b/src/scenes/jbc2b.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createCanNode, createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_2B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 2B' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 2B: Ring Around the Can, Sr.' }, + name: tr('JBC 2B'), + description: tr('Junior Botball Challenge 2B: Ring Around the Can, Sr.'), nodes: { ...baseScene.nodes, 'can10': createCanNode(10), diff --git a/src/scenes/jbc2c.ts b/src/scenes/jbc2c.ts index 75cddead..1688e771 100644 --- a/src/scenes/jbc2c.ts +++ b/src/scenes/jbc2c.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createCanNode, createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_2C: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 2C' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 2C: Back It Up' }, + name: tr('JBC 2C'), + description: tr('Junior Botball Challenge 2C: Back It Up'), nodes: { ...baseScene.nodes, 'can6': createCanNode(6), diff --git a/src/scenes/jbc2d.ts b/src/scenes/jbc2d.ts index 1a31d9dc..f9248740 100644 --- a/src/scenes/jbc2d.ts +++ b/src/scenes/jbc2d.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createCanNode, createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_2D: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 2D' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 2D: Ring Around the Can and Back It Up' }, + name: tr('JBC 2D'), + description: tr('Junior Botball Challenge 2D: Ring Around the Can and Back It Up'), nodes: { ...baseScene.nodes, 'can6': createCanNode(6), diff --git a/src/scenes/jbc3.ts b/src/scenes/jbc3.ts index 17488818..9bee76ff 100644 --- a/src/scenes/jbc3.ts +++ b/src/scenes/jbc3.ts @@ -3,10 +3,12 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_3: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 3' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 3: Precision Parking' }, + name: tr('JBC 3'), + description: tr('Junior Botball Challenge 3: Precision Parking'), }; \ No newline at end of file diff --git a/src/scenes/jbc3b.ts b/src/scenes/jbc3b.ts index 9bb5337b..56a90ea5 100644 --- a/src/scenes/jbc3b.ts +++ b/src/scenes/jbc3b.ts @@ -3,10 +3,12 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_3B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 3B' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 3B: Parallel Parking' }, + name: tr('JBC 3B'), + description: tr('Junior Botball Challenge 3B: Parallel Parking'), }; \ No newline at end of file diff --git a/src/scenes/jbc3c.ts b/src/scenes/jbc3c.ts index 0e753a21..1c517ca5 100644 --- a/src/scenes/jbc3c.ts +++ b/src/scenes/jbc3c.ts @@ -3,10 +3,12 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_3C: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 3C' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 3C: Quick Get Away!' }, + name: tr('JBC 3C'), + description: tr('Junior Botball Challenge 3C: Quick Get Away!'), }; \ No newline at end of file diff --git a/src/scenes/jbc4.ts b/src/scenes/jbc4.ts index 8fb26b26..8e5f138e 100644 --- a/src/scenes/jbc4.ts +++ b/src/scenes/jbc4.ts @@ -5,10 +5,12 @@ import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; const baseScene = createBaseSceneSurfaceA(); +import tr from '@i18n'; + export const JBC_4: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 4' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 4: Figure Eight' }, + name: tr('JBC 4'), + description: tr('Junior Botball Challenge 4: Figure Eight'), nodes: { ...baseScene.nodes, 'can4': createCanNode(4), diff --git a/src/scenes/jbc4b.ts b/src/scenes/jbc4b.ts index 448e220e..27a9d799 100644 --- a/src/scenes/jbc4b.ts +++ b/src/scenes/jbc4b.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_4B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 4B' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 4B: Barrel Racing' }, + name: tr('JBC 4B'), + description: tr('Junior Botball Challenge 4B: Barrel Racing'), nodes: { ...baseScene.nodes, 'can5': createCanNode(5), diff --git a/src/scenes/jbc5.ts b/src/scenes/jbc5.ts index faf64abc..86799e33 100644 --- a/src/scenes/jbc5.ts +++ b/src/scenes/jbc5.ts @@ -1,5 +1,4 @@ import Scene from "../state/State/Scene"; -import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA } from './jbcBase'; @@ -9,6 +8,6 @@ const baseScene = createBaseSceneSurfaceA(); export const JBC_5: Scene = { ...baseScene, - name: tr('src/scenes/jbc5.ts/JBC_5.name', 'JBC 5 Name'), - description: tr('src/scenes/jbc5.ts/JBC_5.description', 'JBC 5 Description') + name: tr('JBC 5'), + description: tr('Junior Botball Challenge 5: Dance Party') }; \ No newline at end of file diff --git a/src/scenes/jbc5b.ts b/src/scenes/jbc5b.ts index 364af9a2..dd1ac2fb 100644 --- a/src/scenes/jbc5b.ts +++ b/src/scenes/jbc5b.ts @@ -9,6 +9,6 @@ const baseScene = createBaseSceneSurfaceA(); export const JBC_5B: Scene = { ...baseScene, - name: tr('src/scenes/jbc5b.ts/JBC_5B.name', 'JBC 5B Name'), - description: tr('src/scenes/jbc5b.ts/JBC_5B.description', 'JBC 5B Description') + name: tr('JBC 5B'), + description: tr('Junior Botball Challenge 5B: Line Dance') }; \ No newline at end of file diff --git a/src/scenes/jbc5c.ts b/src/scenes/jbc5c.ts index 81b457b6..c0aed779 100644 --- a/src/scenes/jbc5c.ts +++ b/src/scenes/jbc5c.ts @@ -9,6 +9,6 @@ const baseScene = createBaseSceneSurfaceB(); export const JBC_5C: Scene = { ...baseScene, - name: tr('src/scenes/jbc5c.ts/JBC_5C.name', 'JBC 5C Name'), - description: tr('src/scenes/jbc5c.ts/JBC_5C.description', 'JBC 5C Description'), + name: tr('JBC 5C'), + description: tr('Junior Botball Challenge 5C: Synchronized Dancing'), }; \ No newline at end of file diff --git a/src/scenes/jbc6.ts b/src/scenes/jbc6.ts index 1fd345bf..cb73b620 100644 --- a/src/scenes/jbc6.ts +++ b/src/scenes/jbc6.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_6: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 6' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 6: Load 'Em Up` }, + name: tr('JBC 6'), + description: tr('Junior Botball Challenge 6: Load \'Em Up'), nodes: { ...baseScene.nodes, 'can2': createCanNode(2), diff --git a/src/scenes/jbc6b.ts b/src/scenes/jbc6b.ts index 22ea7899..8d1a3492 100644 --- a/src/scenes/jbc6b.ts +++ b/src/scenes/jbc6b.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_6B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 6B' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 6B: Pick 'Em Up` }, + name: tr('JBC 6B'), + description: tr('Junior Botball Challenge 6B: Pick \'Em Up'), nodes: { ...baseScene.nodes, 'can2': createCanNode(2), diff --git a/src/scenes/jbc6c.ts b/src/scenes/jbc6c.ts index f4ba3eaf..9c698095 100644 --- a/src/scenes/jbc6c.ts +++ b/src/scenes/jbc6c.ts @@ -6,6 +6,8 @@ import Script from '../state/State/Scene/Script'; import { Distance } from "../util"; import LocalizedString from '../util/LocalizedString'; +import tr from '@i18n'; + import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; // import jbc6c from "../challenges/jbc6c"; @@ -99,8 +101,8 @@ scene.addOnRenderListener(() => { export const JBC_6C: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 6C' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 6C: Empty the Garage` }, + name: tr('JBC 6C'), + description: tr('Junior Botball Challenge 6C: Empty the Garage'), scripts: { 'circleIntersects': Script.ecmaScript('Circle Intersects', circleIntersects), 'surfaceIntersect': Script.ecmaScript('Surface Intersect', surfaceIntersect), @@ -137,7 +139,7 @@ export const JBC_6C: Scene = { 'circle2': { type: 'object', geometryId: 'circle2_geom', - name: { [LocalizedString.EN_US]: 'Circle 2' }, + name: tr('Circle 2'), visible: false, origin: { position: { @@ -157,7 +159,7 @@ export const JBC_6C: Scene = { 'circle9': { type: 'object', geometryId: 'circle9_geom', - name: { [LocalizedString.EN_US]: 'Circle 9' }, + name: tr('Circle 9'), visible: false, origin: { position: { @@ -177,7 +179,7 @@ export const JBC_6C: Scene = { 'circle10': { type: 'object', geometryId: 'circle10_geom', - name: { [LocalizedString.EN_US]: 'Circle 10' }, + name: tr('Circle 10'), visible: false, origin: { position: { @@ -197,7 +199,7 @@ export const JBC_6C: Scene = { 'mainSurface': { type: 'object', geometryId: 'mainSurface_geom', - name: { [LocalizedString.EN_US]: 'Mat Surface' }, + name: tr('Mat Surface'), visible: false, origin: { position: { diff --git a/src/scenes/jbc7.ts b/src/scenes/jbc7.ts index 2b64c814..7f886fde 100644 --- a/src/scenes/jbc7.ts +++ b/src/scenes/jbc7.ts @@ -1,14 +1,16 @@ import Scene from "../state/State/Scene"; import LocalizedString from '../util/LocalizedString'; +import tr from '@i18n'; + import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; const baseScene = createBaseSceneSurfaceA(); export const JBC_7: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 7' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 7: Bulldozer Mania` }, + name: tr('JBC 7'), + description: tr('Junior Botball Challenge 7: Bulldozer Mania'), nodes: { ...baseScene.nodes, 'can1': createCanNode(1), diff --git a/src/scenes/jbc7b.ts b/src/scenes/jbc7b.ts index 3b2c4947..1b35bdcc 100644 --- a/src/scenes/jbc7b.ts +++ b/src/scenes/jbc7b.ts @@ -5,6 +5,8 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA, createCanNode } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); const ROBOT_ORIGIN: ReferenceFrame = { @@ -17,8 +19,8 @@ const ROBOT_ORIGIN: ReferenceFrame = { export const JBC_7B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 7B' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge 7B: Cover Your Bases` }, + name: tr('JBC 7B'), + description: tr('Junior Botball Challenge 7B: Cover Your Bases'), nodes: { ...baseScene.nodes, // The normal starting position of the robot covers the tape diff --git a/src/scenes/jbc8.ts b/src/scenes/jbc8.ts index a65722a3..f70c5185 100644 --- a/src/scenes/jbc8.ts +++ b/src/scenes/jbc8.ts @@ -3,10 +3,12 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_8: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 8' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 8: Serpentine' }, + name: tr('JBC 8'), + description: tr('Junior Botball Challenge 8: Serpentine'), }; \ No newline at end of file diff --git a/src/scenes/jbc8b.ts b/src/scenes/jbc8b.ts index cc97789a..65522464 100644 --- a/src/scenes/jbc8b.ts +++ b/src/scenes/jbc8b.ts @@ -3,10 +3,12 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_8B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 8B' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 8B: Serpentine Jr.' }, + name: tr('JBC 8B'), + description: tr('Junior Botball Challenge 8B: Serpentine Jr.'), }; \ No newline at end of file diff --git a/src/scenes/jbc9.ts b/src/scenes/jbc9.ts index 5ea42182..31965172 100644 --- a/src/scenes/jbc9.ts +++ b/src/scenes/jbc9.ts @@ -3,10 +3,12 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_9: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 9' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 9: Add It Up' }, + name: tr('JBC 9'), + description: tr('Junior Botball Challenge 9: Add It Up'), }; \ No newline at end of file diff --git a/src/scenes/jbc9b.ts b/src/scenes/jbc9b.ts index 446e2436..a87eca2b 100644 --- a/src/scenes/jbc9b.ts +++ b/src/scenes/jbc9b.ts @@ -3,10 +3,12 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); export const JBC_9B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC 9B' }, - description: { [LocalizedString.EN_US]: 'Junior Botball Challenge 9B: Balancing Act' }, + name: tr('JBC 9B'), + description: tr('Junior Botball Challenge 9B: Balancing Act'), }; \ No newline at end of file diff --git a/src/scenes/jbcBase.ts b/src/scenes/jbcBase.ts index a49b0502..674da4c3 100644 --- a/src/scenes/jbcBase.ts +++ b/src/scenes/jbcBase.ts @@ -7,6 +7,10 @@ import AbstractRobot from '../AbstractRobot'; import LocalizedString from '../util/LocalizedString'; import Author from '../db/Author'; +import tr from '@i18n'; +import { sprintf } from 'sprintf-js'; +import Dict from '../Dict'; + const ROBOT_ORIGIN: ReferenceFrame = { position: Vector3.centimeters(0, 5, 0), orientation: Rotation.eulerDegrees(0, 0, 0), @@ -14,7 +18,7 @@ const ROBOT_ORIGIN: ReferenceFrame = { const ROBOT: Node.Robot = { type: 'robot', - name: { [LocalizedString.EN_US]: 'Robot' }, + name: tr('Robot'), robotId: 'demobot', state: AbstractRobot.Stateless.NIL, visible: true, @@ -59,8 +63,8 @@ const LIGHT_ORIGIN: ReferenceFrame = { export function createBaseSceneSurfaceA(): Scene { return { - name: { [LocalizedString.EN_US]: 'Base Scene - Surface A' }, - description: { [LocalizedString.EN_US]: 'A base scene using Surface A. Intended to be augmented to create full JBC scenes' }, + name: tr('Base Scene - Surface A'), + description: tr('A base scene using Surface A. Intended to be augmented to create full JBC scenes'), author: Author.organization('kipr'), geometry: { 'ground': { @@ -76,7 +80,7 @@ export function createBaseSceneSurfaceA(): Scene { 'jbc_mat_a': { type: 'from-template', templateId: 'jbc_mat_a', - name: { [LocalizedString.EN_US]: 'JBC Surface A' }, + name: tr('JBC Surface A'), startingOrigin: JBC_MAT_ORIGIN, origin: JBC_MAT_ORIGIN, visible: true, @@ -84,7 +88,7 @@ export function createBaseSceneSurfaceA(): Scene { 'ground': { type: 'object', geometryId: 'ground', - name: { [LocalizedString.EN_US]: 'Ground' }, + name: tr('Ground'), startingOrigin: GROUND_ORIGIN, origin: GROUND_ORIGIN, visible: true, @@ -97,7 +101,7 @@ export function createBaseSceneSurfaceA(): Scene { 'light0': { type: 'point-light', intensity: 1, - name: { [LocalizedString.EN_US]: 'Light' }, + name: tr('Light'), startingOrigin: LIGHT_ORIGIN, origin: LIGHT_ORIGIN, visible: true @@ -128,8 +132,8 @@ export function createBaseSceneSurfaceB(): Scene { return { - name: { [LocalizedString.EN_US]: 'Base Scene - Surface B' }, - description: { [LocalizedString.EN_US]: 'A base scene using Surface B. Intended to be augmented to create full JBC scenes' }, + name: tr('Base Scene - Surface B'), + description: tr('A base scene using Surface B. Intended to be augmented to create full JBC scenes'), author: Author.organization('kipr'), geometry: { 'ground': { @@ -145,7 +149,7 @@ export function createBaseSceneSurfaceB(): Scene { 'jbc_mat_b': { type: 'from-template', templateId: 'jbc_mat_b', - name: { [LocalizedString.EN_US]: 'JBC Surface B' }, + name: tr('JBC Surface B'), startingOrigin: JBC_MAT_ORIGIN, origin: JBC_MAT_ORIGIN, visible: true, @@ -153,7 +157,7 @@ export function createBaseSceneSurfaceB(): Scene { 'ground': { type: 'object', geometryId: 'ground', - name: { [LocalizedString.EN_US]: 'Ground' }, + name: tr('Ground'), startingOrigin: GROUND_ORIGIN, origin: GROUND_ORIGIN, visible: true, @@ -166,7 +170,7 @@ export function createBaseSceneSurfaceB(): Scene { 'light0': { type: 'point-light', intensity: 10000, - name: { [LocalizedString.EN_US]: 'Light' }, + name: tr('Light'), startingOrigin: LIGHT_ORIGIN, origin: LIGHT_ORIGIN, visible: true @@ -209,7 +213,7 @@ export function createCanNode(canNumber: number, canPosition?: Vector3, editable return { type: 'from-template', templateId: 'can', - name: { [LocalizedString.EN_US]: `Can ${canNumber}` }, + name: Dict.map(tr('Can %1'), str => sprintf(str, canNumber)), startingOrigin: origin, origin, editable: editable ?? false, diff --git a/src/scenes/jbcSandboxA.ts b/src/scenes/jbcSandboxA.ts index 9d208926..fdfaf939 100644 --- a/src/scenes/jbcSandboxA.ts +++ b/src/scenes/jbcSandboxA.ts @@ -6,6 +6,8 @@ import LocalizedString from '../util/LocalizedString'; import { createCanNode, createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); const REAM1_ORIGIN: ReferenceFrame = { @@ -34,12 +36,8 @@ const REAM2_ORIGIN: ReferenceFrame = { export const JBC_Sandbox_A: Scene = { ...baseScene, - name: { - [LocalizedString.EN_US]: 'JBC Sandbox A' - }, - description: { - [LocalizedString.EN_US]: `Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by default.` - }, + name: tr('JBC Sandbox A'), + description: tr('Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by default.'), nodes: { ...baseScene.nodes, 'robot': { @@ -61,7 +59,7 @@ export const JBC_Sandbox_A: Scene = { 'ream1': { type: 'from-template', templateId: 'ream', - name: { [LocalizedString.EN_US]: 'Paper Ream 1' }, + name: tr('Paper Ream 1'), startingOrigin: REAM1_ORIGIN, origin: REAM1_ORIGIN, editable: true, @@ -70,7 +68,7 @@ export const JBC_Sandbox_A: Scene = { 'ream2': { type: 'from-template', templateId: 'ream', - name: { [LocalizedString.EN_US]: 'Paper Ream 2' }, + name: tr('Paper Ream 2'), startingOrigin: REAM2_ORIGIN, origin: REAM2_ORIGIN, editable: true, diff --git a/src/scenes/jbcSandboxB.ts b/src/scenes/jbcSandboxB.ts index 6e0f8a79..94b937d7 100644 --- a/src/scenes/jbcSandboxB.ts +++ b/src/scenes/jbcSandboxB.ts @@ -3,12 +3,14 @@ import LocalizedString from '../util/LocalizedString'; import { createBaseSceneSurfaceB } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceB(); export const JBC_Sandbox_B: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'JBC Sandbox B' }, - description: { [LocalizedString.EN_US]: `Junior Botball Challenge Sandbox on Mat B.` }, + name: tr('JBC Sandbox B'), + description: tr('Junior Botball Challenge Sandbox on Mat B.'), nodes: { ...baseScene.nodes, 'robot': { diff --git a/src/scenes/scriptPlayground.ts b/src/scenes/scriptPlayground.ts index 97db4904..63f9d7f0 100644 --- a/src/scenes/scriptPlayground.ts +++ b/src/scenes/scriptPlayground.ts @@ -7,6 +7,8 @@ import LocalizedString from '../util/LocalizedString'; import { createCanNode, createBaseSceneSurfaceA } from './jbcBase'; +import tr from '@i18n'; + const baseScene = createBaseSceneSurfaceA(); const intersection = ` @@ -43,8 +45,8 @@ scene.addOnCollisionListener('can6', (otherNodeId) => { export const scriptPlayground: Scene = { ...baseScene, - name: { [LocalizedString.EN_US]: 'Script Playground' }, - description: { [LocalizedString.EN_US]: `Script tests` }, + name: tr('Script Playground'), + description: tr('Script tests'), scripts: { 'intersection': Script.ecmaScript('Intersection', intersection), 'collision': Script.ecmaScript('Collision', collision), @@ -65,7 +67,7 @@ export const scriptPlayground: Scene = { 'volume': { type: 'object', geometryId: 'volume_geom', - name: { [LocalizedString.EN_US]: 'Volume' }, + name: tr('Volume', 'Volume (box) in the 3D scene'), visible: true, origin: { position: { @@ -97,7 +99,7 @@ export const scriptPlayground: Scene = { 'ream1': { type: 'from-template', templateId: 'ream', - name: { [LocalizedString.EN_US]: 'Paper Ream 1' }, + name: tr('Paper Ream 1'), origin: { position: { x: Distance.centimeters(0), @@ -115,7 +117,7 @@ export const scriptPlayground: Scene = { 'ream2': { type: 'from-template', templateId: 'ream', - name: { [LocalizedString.EN_US]: 'Paper Ream 2' }, + name: tr('Paper Ream 2'), origin: { position: { x: Distance.centimeters(0), diff --git a/src/state/State/index.ts b/src/state/State/index.ts index 5bc95c36..8c235b41 100644 --- a/src/state/State/index.ts +++ b/src/state/State/index.ts @@ -1,4 +1,5 @@ import { Size } from '../../components/Widget'; +import LocalizedString from '../../util/LocalizedString'; import Dict from '../../Dict'; import Async from "./Async"; import { AsyncChallenge } from './Challenge'; @@ -60,4 +61,6 @@ export namespace DocumentationState { size: Size.MINIMIZED, language: 'c' }; +export interface I18n { + locale: LocalizedString.Language; } \ No newline at end of file diff --git a/src/state/index.ts b/src/state/index.ts index 9acbc146..73b13f24 100644 --- a/src/state/index.ts +++ b/src/state/index.ts @@ -1,7 +1,7 @@ import { applyMiddleware, combineReducers, compose, createStore, } from 'redux'; import * as reducer from './reducer'; -import { DocumentationState, ChallengeCompletions, Challenges, Robots, Scenes } from './State'; +import { DocumentationState, ChallengeCompletions, Challenges, I18n, Robots, Scenes } from './State'; import { connectRouter, RouterState, routerMiddleware } from 'connected-react-router'; import history from './history'; import { AsyncScene } from './State/Scene'; @@ -22,6 +22,7 @@ export default createStore(combineReducers({ router: connectRouter(history), challenges: reducer.reduceChallenges, challengeCompletions: reducer.reduceChallengeCompletions, + i18n: reducer.reduceI18n, }), composeEnhancers( applyMiddleware( routerMiddleware(history) @@ -37,6 +38,7 @@ export interface State { robots: Robots; documentation: DocumentationState; router: RouterState; + i18n: I18n; } export namespace State { diff --git a/src/state/reducer/i18n.ts b/src/state/reducer/i18n.ts new file mode 100644 index 00000000..82339fd9 --- /dev/null +++ b/src/state/reducer/i18n.ts @@ -0,0 +1,26 @@ +import { I18n } from '../State'; +import construct from '../../util/construct'; +import LocalizedString from '../../util/LocalizedString'; + +export namespace I18nAction { + export interface SetLocale { + type: 'i18n/set-locale'; + locale: LocalizedString.Language; + } + + export const setLocale = construct('i18n/set-locale'); +} + +export type I18nAction = I18nAction.SetLocale; + +export const reduceI18n = (state: I18n = { locale: LocalizedString.EN_US }, action: I18nAction): I18n => { + switch (action.type) { + case 'i18n/set-locale': + return { + ...state, + locale: action.locale, + }; + default: + return state; + } +}; \ No newline at end of file diff --git a/src/state/reducer/index.ts b/src/state/reducer/index.ts index b18ce9d9..32466173 100644 --- a/src/state/reducer/index.ts +++ b/src/state/reducer/index.ts @@ -3,3 +3,4 @@ export * from './robots'; export * from './challenges'; export * from './challengeCompletions'; export * from './documentation'; +export * from './i18n'; diff --git a/src/util/LocalizedString.ts b/src/util/LocalizedString.ts index 2771e0e8..0a55f7e7 100644 --- a/src/util/LocalizedString.ts +++ b/src/util/LocalizedString.ts @@ -158,6 +158,84 @@ namespace LocalizedString { return localizedString[currentLocale]; }; + + export const SUPPORTED_LANGUAGES = [ + LocalizedString.AR_SA, + LocalizedString.BG_BG, + LocalizedString.CS_CZ, + LocalizedString.DA_DK, + LocalizedString.DE_DE, + LocalizedString.EL_GR, + LocalizedString.EN_UK, + LocalizedString.EN_US, + LocalizedString.ES_ES, + LocalizedString.ES_MX, + LocalizedString.FA_IR, + LocalizedString.FI_FI, + LocalizedString.FR_FR, + LocalizedString.HE_IL, + LocalizedString.HI_IN, + LocalizedString.HU_HU, + LocalizedString.ID_ID, + LocalizedString.IT_IT, + LocalizedString.JA_JP, + LocalizedString.KO_KR, + LocalizedString.MS_MY, + LocalizedString.NL_NL, + LocalizedString.NO_NO, + LocalizedString.PL_PL, + LocalizedString.PT_BR, + LocalizedString.PT_PT, + LocalizedString.RO_RO, + LocalizedString.RU_RU, + LocalizedString.SK_SK, + LocalizedString.SV_SE, + LocalizedString.TH_TH, + LocalizedString.TR_TR, + LocalizedString.UR_PK, + LocalizedString.VI_VN, + LocalizedString.ZH_CN, + LocalizedString.ZH_TW, + ]; + + export const NATIVE_LOCALE_NAMES: { [locale in Language]: string } = { + [LocalizedString.AR_SA]: 'العربية', + [LocalizedString.BG_BG]: 'български', + [LocalizedString.CS_CZ]: 'čeština', + [LocalizedString.DA_DK]: 'dansk', + [LocalizedString.DE_DE]: 'Deutsch', + [LocalizedString.EL_GR]: 'ελληνικά', + [LocalizedString.EN_UK]: 'English (UK)', + [LocalizedString.EN_US]: 'English (US)', + [LocalizedString.ES_ES]: 'español', + [LocalizedString.ES_MX]: 'español (MX)', + [LocalizedString.FA_IR]: 'فارسی', + [LocalizedString.FI_FI]: 'suomi', + [LocalizedString.FR_FR]: 'français', + [LocalizedString.HE_IL]: 'עברית', + [LocalizedString.HI_IN]: 'हिन्दी', + [LocalizedString.HU_HU]: 'magyar', + [LocalizedString.ID_ID]: 'Bahasa Indonesia', + [LocalizedString.IT_IT]: 'italiano', + [LocalizedString.JA_JP]: '日本語', + [LocalizedString.KO_KR]: '한국어', + [LocalizedString.MS_MY]: 'Bahasa Melayu', + [LocalizedString.NL_NL]: 'Nederlands', + [LocalizedString.NO_NO]: 'norsk', + [LocalizedString.PL_PL]: 'polski', + [LocalizedString.PT_BR]: 'português (BR)', + [LocalizedString.PT_PT]: 'português (PT)', + [LocalizedString.RO_RO]: 'română', + [LocalizedString.RU_RU]: 'русский', + [LocalizedString.SK_SK]: 'slovenčina', + [LocalizedString.SV_SE]: 'svenska', + [LocalizedString.TH_TH]: 'ไทย', + [LocalizedString.TR_TR]: 'Türkçe', + [LocalizedString.UR_PK]: 'اردو', + [LocalizedString.VI_VN]: 'Tiếng Việt', + [LocalizedString.ZH_CN]: '简体中文', + [LocalizedString.ZH_TW]: '繁體中文', + }; } export default LocalizedString; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 7a35ff73..ac23e648 100644 --- a/yarn.lock +++ b/yarn.lock @@ -884,6 +884,14 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.49.tgz#3facb98ebcd4114a4ecef74e0de2175b56fd4464" integrity sha512-K1AFuMe8a+pXmfHTtnwBvqoEylNKVeaiKYkjmcEAdytMQVJ/i9Fu7sc13GxgXdO49gkE7Hy8SyJonUZUn+eVaw== +"@types/gettext-parser@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/gettext-parser/-/gettext-parser-4.0.2.tgz#2048a92f137ec64fd504d62e8f407ad3b0e7e43e" + integrity sha512-fwpC5IWmQmjXSr56i5Bitw9x+pKxO1Nnjp+wyxzEIEc+87HVolbJIViIcfdMvCU8nz81Z8BYzXYwDUAihRfCnw== + dependencies: + "@types/node" "*" + "@types/readable-stream" "*" + "@types/glob@^7.1.1": version "7.1.4" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" @@ -996,6 +1004,14 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/readable-stream@*": + version "2.3.15" + resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae" + integrity sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ== + dependencies: + "@types/node" "*" + safe-buffer "~5.1.1" + "@types/redux@^3.6.0": version "3.6.0" resolved "https://registry.yarnpkg.com/@types/redux/-/redux-3.6.0.tgz#f1ebe1e5411518072e4fdfca5c76e16e74c1399a" @@ -1008,6 +1024,11 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== +"@types/sprintf-js@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/sprintf-js/-/sprintf-js-1.1.2.tgz#a4fcb84c7344f39f70dc4eec0e1e7f10a48597a3" + integrity sha512-hkgzYF+qnIl8uTO8rmUSVSfQ8BIfMXC4yJAF4n8BE758YsKBZvFC4NumnAegj7KmylP0liEZNpb9RRGFMbFejA== + "@types/styletron-engine-atomic@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/styletron-engine-atomic/-/styletron-engine-atomic-1.1.1.tgz#032dabd5ccea1b8601521ad38616a7a9f0af5404" @@ -1269,6 +1290,13 @@ abab@^2.0.5: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -1801,6 +1829,14 @@ buffer@^5.2.1: base64-js "^1.3.1" ieee754 "^1.1.13" +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -2207,7 +2243,7 @@ content-disposition@0.5.4, content-disposition@^0.5.2: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: +content-type@^1.0.4, content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== @@ -2817,6 +2853,13 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -3058,12 +3101,17 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.2.0: +events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -3719,6 +3767,16 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +gettext-parser@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-6.0.0.tgz#201e61d92c1cc7edf8f6ee3a7e3d6ab1e061b44c" + integrity sha512-eWFsR78gc/eKnzDgc919Us3cbxQbzxK1L8vAIZrKMQqOUgULyeqmczNlBjTlVTk2FaB7nV9C1oobd/PGBOqNmg== + dependencies: + content-type "^1.0.4" + encoding "^0.1.13" + readable-stream "^4.1.0" + safe-buffer "^5.2.1" + gifsicle@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/gifsicle/-/gifsicle-4.0.1.tgz#30e1e61e3ee4884ef702641b2e98a15c2127b2e2" @@ -4161,7 +4219,7 @@ idb@3.0.2: resolved "https://registry.yarnpkg.com/idb/-/idb-3.0.2.tgz#c8e9122d5ddd40f13b60ae665e4862f8b13fa384" integrity sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw== -ieee754@^1.1.13: +ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -6520,6 +6578,16 @@ readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.3.0.tgz#0914d0c72db03b316c9733bb3461d64a3cc50cba" + integrity sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -6750,7 +6818,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -7235,6 +7303,11 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" From 1753a3e67aa23fd9ebae3246e617c8815def17d4 Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Fri, 20 Jan 2023 04:59:33 -0500 Subject: [PATCH 04/18] Update POs --- i18n/po/ar-SA.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/bg-BG.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/cs-CZ.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/da-DK.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/de-DE.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/el-GR.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/en-UK.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/en-US.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/es-ES.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/es-MX.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/fa-IR.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/fi-FI.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/fr-FR.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/he-IL.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/hi-IN.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/hu-HU.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/id-ID.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/it-IT.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/ja-JP.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/ko-KR.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/ms-MY.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/nl-NL.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/no-NO.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/pl-PL.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/pt-BR.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/pt-PT.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/ro-RO.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/ru-RU.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/sk-SK.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/sv-SE.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/th-TH.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/tr-TR.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/ur-PK.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/vi-VN.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/zh-CN.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ i18n/po/zh-TW.po | 570 +++++++++++++++++++++++++++++++++++++++++++++++ 36 files changed, 20520 insertions(+) diff --git a/i18n/po/ar-SA.po b/i18n/po/ar-SA.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/ar-SA.po +++ b/i18n/po/ar-SA.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/bg-BG.po b/i18n/po/bg-BG.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/bg-BG.po +++ b/i18n/po/bg-BG.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/cs-CZ.po b/i18n/po/cs-CZ.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/cs-CZ.po +++ b/i18n/po/cs-CZ.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/da-DK.po b/i18n/po/da-DK.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/da-DK.po +++ b/i18n/po/da-DK.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/de-DE.po b/i18n/po/de-DE.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/de-DE.po +++ b/i18n/po/de-DE.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/el-GR.po b/i18n/po/el-GR.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/el-GR.po +++ b/i18n/po/el-GR.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/en-UK.po b/i18n/po/en-UK.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/en-UK.po +++ b/i18n/po/en-UK.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/en-US.po b/i18n/po/en-US.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/en-US.po +++ b/i18n/po/en-US.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/es-ES.po b/i18n/po/es-ES.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/es-ES.po +++ b/i18n/po/es-ES.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/es-MX.po b/i18n/po/es-MX.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/es-MX.po +++ b/i18n/po/es-MX.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/fa-IR.po b/i18n/po/fa-IR.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/fa-IR.po +++ b/i18n/po/fa-IR.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/fi-FI.po b/i18n/po/fi-FI.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/fi-FI.po +++ b/i18n/po/fi-FI.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/fr-FR.po b/i18n/po/fr-FR.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/fr-FR.po +++ b/i18n/po/fr-FR.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/he-IL.po b/i18n/po/he-IL.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/he-IL.po +++ b/i18n/po/he-IL.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/hi-IN.po b/i18n/po/hi-IN.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/hi-IN.po +++ b/i18n/po/hi-IN.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/hu-HU.po b/i18n/po/hu-HU.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/hu-HU.po +++ b/i18n/po/hu-HU.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/id-ID.po b/i18n/po/id-ID.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/id-ID.po +++ b/i18n/po/id-ID.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/it-IT.po b/i18n/po/it-IT.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/it-IT.po +++ b/i18n/po/it-IT.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/ja-JP.po b/i18n/po/ja-JP.po index e0d9bb42..5ee9d278 100644 --- a/i18n/po/ja-JP.po +++ b/i18n/po/ja-JP.po @@ -395,3 +395,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/ko-KR.po b/i18n/po/ko-KR.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/ko-KR.po +++ b/i18n/po/ko-KR.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/ms-MY.po b/i18n/po/ms-MY.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/ms-MY.po +++ b/i18n/po/ms-MY.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/nl-NL.po b/i18n/po/nl-NL.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/nl-NL.po +++ b/i18n/po/nl-NL.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/no-NO.po b/i18n/po/no-NO.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/no-NO.po +++ b/i18n/po/no-NO.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/pl-PL.po b/i18n/po/pl-PL.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/pl-PL.po +++ b/i18n/po/pl-PL.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/pt-BR.po b/i18n/po/pt-BR.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/pt-BR.po +++ b/i18n/po/pt-BR.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/pt-PT.po b/i18n/po/pt-PT.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/pt-PT.po +++ b/i18n/po/pt-PT.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/ro-RO.po b/i18n/po/ro-RO.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/ro-RO.po +++ b/i18n/po/ro-RO.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/ru-RU.po b/i18n/po/ru-RU.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/ru-RU.po +++ b/i18n/po/ru-RU.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/sk-SK.po b/i18n/po/sk-SK.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/sk-SK.po +++ b/i18n/po/sk-SK.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/sv-SE.po b/i18n/po/sv-SE.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/sv-SE.po +++ b/i18n/po/sv-SE.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/th-TH.po b/i18n/po/th-TH.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/th-TH.po +++ b/i18n/po/th-TH.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/tr-TR.po b/i18n/po/tr-TR.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/tr-TR.po +++ b/i18n/po/tr-TR.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/ur-PK.po b/i18n/po/ur-PK.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/ur-PK.po +++ b/i18n/po/ur-PK.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/vi-VN.po b/i18n/po/vi-VN.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/vi-VN.po +++ b/i18n/po/vi-VN.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/zh-CN.po b/i18n/po/zh-CN.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/zh-CN.po +++ b/i18n/po/zh-CN.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" diff --git a/i18n/po/zh-TW.po b/i18n/po/zh-TW.po index 1aff8a4b..e647ac0a 100644 --- a/i18n/po/zh-TW.po +++ b/i18n/po/zh-TW.po @@ -385,3 +385,573 @@ msgstr "" msgid "Volume" msgstr "" + +msgid "JBC Challenge 6C" +msgstr "" + +msgid "Can A Lifted" +msgstr "" + +msgid "Can A picked up" +msgstr "" + +msgid "Can B Lifted" +msgstr "" + +msgid "Can B picked up" +msgstr "" + +msgid "Can C Lifted" +msgstr "" + +msgid "Can C picked up" +msgstr "" + +msgid "Can A Placed" +msgstr "" + +msgid "Can A placed on circle 2" +msgstr "" + +msgid "Can B Placed" +msgstr "" + +msgid "Can A placed on circle 9" +msgstr "" + +msgid "Can C Placed" +msgstr "" + +msgid "Can A placed on circle 10" +msgstr "" + +msgid "Can A Upright" +msgstr "" + +msgid "Can A upright on circle 2" +msgstr "" + +msgid "Can B Upright" +msgstr "" + +msgid "Can B upright on circle 9" +msgstr "" + +msgid "Can C Upright" +msgstr "" + +msgid "Can C upright on circle 10" +msgstr "" + +msgid "Loading..." +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Indent" +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Error(s)" +msgstr "" + +msgid "Warning(s)" +msgstr "" + +msgid "grams" +msgstr "" + +msgid "kilograms" +msgstr "" + +msgid "pounds" +msgstr "" + +msgid "ounces" +msgstr "" + +msgid "meters" +msgstr "" + +msgid "centimeters" +msgstr "" + +msgid "feet" +msgstr "" + +msgid "inches" +msgstr "" + +msgid "radians" +msgstr "" + +msgid "degrees" +msgstr "" + +msgid "Can" +msgstr "" + +msgid "Box" +msgstr "" + +msgid "Sphere" +msgstr "" + +msgid "Cylinder" +msgstr "" + +msgid "Cone" +msgstr "" + +msgid "Plane" +msgstr "" + +msgid "File" +msgstr "" + +msgid "Euler" +msgstr "" + +msgid "Axis Angle" +msgstr "" + +msgid "Empty" +msgstr "" + +msgid "Standard Object" +msgstr "" + +msgid "Custom Object" +msgstr "" + +msgid "Point Light" +msgstr "" + +msgid "Unset" +msgstr "" + +msgid "Basic" +msgstr "" + +msgid "Texture" +msgstr "" + +msgid "Value" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Geometry" +msgstr "" + +msgid "Item" +msgstr "" + +msgid "Box Options" +msgstr "" + +msgid "Size X" +msgstr "" + +msgid "Size Y" +msgstr "" + +msgid "Size Z" +msgstr "" + +msgid "Sphere Options" +msgstr "" + +msgid "Radius" +msgstr "" + +msgid "Cylinder Options" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Plane Options" +msgstr "" + +msgid "File Options" +msgstr "" + +msgid "URI" +msgstr "" + +msgid "Material" +msgstr "" + +msgid "Color Type" +msgstr "" + +msgid "Color Red" +msgstr "" + +msgid "Color Green" +msgstr "" + +msgid "Color Blue" +msgstr "" + +msgid "Color Texture URI" +msgstr "" + +msgid "Albedo Type" +msgstr "" + +msgid "Albedo Red" +msgstr "" + +msgid "Albedo Green" +msgstr "" + +msgid "Albedo Blue" +msgstr "" + +msgid "Albedo Texture URI" +msgstr "" + +msgid "Reflection Type" +msgstr "" + +msgid "Reflection Red" +msgstr "" + +msgid "Reflection Green" +msgstr "" + +msgid "Reflection Blue" +msgstr "" + +msgid "Reflection Texture URI" +msgstr "" + +msgid "Emissive Type" +msgstr "" + +msgid "Emissive Red" +msgstr "" + +msgid "Emissive Green" +msgstr "" + +msgid "Emissive Blue" +msgstr "" + +msgid "Emissive Texture URI" +msgstr "" + +msgid "Ambient Type" +msgstr "" + +msgid "Ambient Red" +msgstr "" + +msgid "Ambient Green" +msgstr "" + +msgid "Ambient Blue" +msgstr "" + +msgid "Ambient Texture URI" +msgstr "" + +msgid "Metalness Type" +msgstr "" + +msgid "Metalness" +msgstr "" + +msgid "Metalness Texture URI" +msgstr "" + +msgid "Position" +msgstr "" + +msgid "X" +msgstr "" + +msgid "Y" +msgstr "" + +msgid "Z" +msgstr "" + +msgid "Orientation" +msgstr "" + +msgid "Order" +msgstr "" + +msgid "Angle" +msgstr "" + +msgid "Scale" +msgstr "" + +msgid "Physics" +msgstr "" + +msgid "Mass" +msgstr "" + +msgid "Friction" +msgstr "" + +msgid "Unnamed Object" +msgstr "" + +msgid "Add Item" +msgstr "" + +msgid "Accept" +msgstr "" + +msgid "Add Script" +msgstr "" + +msgid "Select Scene" +msgstr "" + +msgid "Save Scene" +msgstr "" + +msgid "Copy Scene" +msgstr "" + +msgid "Item(s) (%1)" +msgstr "" + +msgid "Script(s) (%1)" +msgstr "" + +msgid "Layouts" +msgstr "" + +msgid "Overlay" +msgstr "" + +msgid "Side" +msgstr "" + +msgid "Options" +msgstr "" + +msgid "Show All" +msgstr "" + +msgid "Hide All" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Start Location" +msgstr "" + +msgid "Motor Velocity Plot" +msgstr "" + +msgid "Motor Position Plot" +msgstr "" + +msgid "Analog Sensor Plot" +msgstr "" + +msgid "Digital Sensor Plot" +msgstr "" + +msgid "Analog Sensors" +msgstr "" + +msgid "Digital Sensors" +msgstr "" + +msgid "" +"This process is taking longer than expected...\n" +"If you have a poor internet connection, this can take some time" +msgstr "" + +msgid "" +"The simulator may have failed to load.\n" +"Please submit a feedback form to let us know!" +msgstr "" + +msgid "Initializing Simulator..." +msgstr "" + +msgid "all of" +msgstr "" + +msgid "one or more of" +msgstr "" + +msgid "exactly one of" +msgstr "" + +msgid "once" +msgstr "" + +msgid "not" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "World" +msgstr "" + +msgid "Script Editor" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Save As" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Feedback" +msgstr "" + +msgid "Version %1 (%2)" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "This software is licensed under the terms of the" +msgstr "" + +msgid "Thank you to the following contributors and testers:" +msgstr "" + +msgid "Want to help improve the simulator and get your name listed here?" +msgstr "" + +msgid "GitHub repository" +msgstr "" + +msgid "We're happy to help you get started!" +msgstr "" + +msgid "" +"Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " +"Let us know!" +msgstr "" + +msgid "How has your experience using the KIPR Simulator been?" +msgstr "" + +msgid "Email (optional): " +msgstr "" + +msgid "Include anonymous usage data to help KIPR developers" +msgstr "" + +msgid "Please try again," +msgstr "" + +msgid "open an issue on our github page" +msgstr "" + +msgid ", or" +msgstr "" + +msgid "email KIPR." +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Feedback Success" +msgstr "" + +msgid "Feedback successfully submitted!" +msgstr "" + +msgid "Thank you for helping improve the KIPR Simulator!" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Delete %1?" +msgstr "" + +msgid "Are you sure you want to delete %1?" +msgstr "" + +msgid "Copy World" +msgstr "" + +msgid "Error %1" +msgstr "" + +msgid "Closing this dialog will take you back to the last well-known state." +msgstr "" + +msgid "If this error persists, please submit feedback." +msgstr "" + +msgid "World Settings" +msgstr "" + +msgid "CHALLENGE" +msgstr "" + +msgid "Start" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Console" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" From 1a7b5292d3759ff520f861589a5baaea78b6faa6 Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Fri, 20 Jan 2023 07:33:39 -0500 Subject: [PATCH 05/18] Heal rebase issue --- src/state/State/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/state/State/index.ts b/src/state/State/index.ts index 8c235b41..88c7f397 100644 --- a/src/state/State/index.ts +++ b/src/state/State/index.ts @@ -61,6 +61,8 @@ export namespace DocumentationState { size: Size.MINIMIZED, language: 'c' }; +} + export interface I18n { locale: LocalizedString.Language; } \ No newline at end of file From 8c6bfe808fc755042be53e9d713d30e58108ba1f Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Fri, 20 Jan 2023 07:34:41 -0500 Subject: [PATCH 06/18] Heal rebase issue --- src/components/Layout/OverlayLayout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Layout/OverlayLayout.tsx b/src/components/Layout/OverlayLayout.tsx index 8b0d2f09..97e4d6c4 100644 --- a/src/components/Layout/OverlayLayout.tsx +++ b/src/components/Layout/OverlayLayout.tsx @@ -364,7 +364,7 @@ export class OverlayLayout extends React.PureComponent Date: Fri, 20 Jan 2023 07:44:48 -0500 Subject: [PATCH 07/18] Fix some anomalies with japanese text rendering --- src/components/AboutDialog.tsx | 2 +- src/components/DeleteDialog.tsx | 4 ++-- src/components/SceneErrorDialog.tsx | 2 +- src/components/TabBar.tsx | 5 ++++- src/components/Widget.tsx | 4 +++- src/components/World/index.tsx | 4 ++-- src/i18n.ts | 2 +- src/scenes/jbcBase.ts | 2 +- 8 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/components/AboutDialog.tsx b/src/components/AboutDialog.tsx index 952890ba..6ae78613 100644 --- a/src/components/AboutDialog.tsx +++ b/src/components/AboutDialog.tsx @@ -85,7 +85,7 @@ class AboutDialog extends React.PureComponent { {logo} - {LocalizedString.lookup(Dict.map(tr('Version %1 (%2)'), str => sprintf(str, SIMULATOR_VERSION, SIMULATOR_GIT_HASH)), locale)} + {LocalizedString.lookup(Dict.map(tr('Version %s (%s)'), (str: string) => sprintf(str, SIMULATOR_VERSION, SIMULATOR_GIT_HASH)), locale)}

{LocalizedString.lookup(tr('Copyright'), locale)} 2023 KISS Institute for Practical Robotics {LocalizedString.lookup(tr('and External Contributors', 'Part of copyright notice, after KIPR is listed'), locale)}

diff --git a/src/components/DeleteDialog.tsx b/src/components/DeleteDialog.tsx index 422fdd24..d09eaf7e 100644 --- a/src/components/DeleteDialog.tsx +++ b/src/components/DeleteDialog.tsx @@ -41,11 +41,11 @@ class DeleteDialog extends React.PureComponent { return ( sprintf(str, LocalizedString.lookup(name, locale))), locale)} + name={LocalizedString.lookup(Dict.map(tr('Delete %s?'), (str: string) => sprintf(str, LocalizedString.lookup(name, locale))), locale)} onClose={onClose} > - {LocalizedString.lookup(Dict.map(tr('Are you sure you want to delete %1?'), str => sprintf(str, LocalizedString.lookup(name, locale))), locale)} + {LocalizedString.lookup(Dict.map(tr('Are you sure you want to delete %s?'), (str: string) => sprintf(str, LocalizedString.lookup(name, locale))), locale)} {LocalizedString.lookup(tr('Delete'), locale)} diff --git a/src/components/SceneErrorDialog.tsx b/src/components/SceneErrorDialog.tsx index 6d07549d..4dc91eca 100644 --- a/src/components/SceneErrorDialog.tsx +++ b/src/components/SceneErrorDialog.tsx @@ -41,7 +41,7 @@ class SceneErrorDialog extends React.Component { return ( sprintf(str, error.code)), locale)} + name={LocalizedString.lookup(Dict.map(tr('Error %s'), (str: string) => sprintf(str, error.code)), locale)} onClose={onClose} > diff --git a/src/components/TabBar.tsx b/src/components/TabBar.tsx index 629430c5..3eb898c0 100644 --- a/src/components/TabBar.tsx +++ b/src/components/TabBar.tsx @@ -42,7 +42,9 @@ const TabText = styled('div', (props: { $vertical: boolean }) => ({ transform: (props.$vertical) ? 'translate(-50%, -50%) rotate(-90deg)' : 'translate(-50%, -50%)', transformOrigin: 'center', textAlign: 'center', - display: 'flex' + display: 'flex', + wordBreak: 'keep-all', + whiteSpace: 'nowrap', })); export class Tab extends React.PureComponent { @@ -75,6 +77,7 @@ const TabBarContainer = styled('div', (props: ThemeProps & { $vertical: boolean flexDirection: (props.$vertical) ? 'column' : 'row' , backgroundColor: props.theme.backgroundColor, color: props.theme.color, + })); export class TabBar extends React.PureComponent { diff --git a/src/components/Widget.tsx b/src/components/Widget.tsx index 948b8bd0..75bca5bd 100644 --- a/src/components/Widget.tsx +++ b/src/components/Widget.tsx @@ -159,7 +159,9 @@ const Title = styled('span', (props: ThemeProps & { $hasComponents: boolean }) = userSelect: 'none', paddingRight: props.$hasComponents ? `${props.theme.itemPadding}px` : undefined, marginRight: props.$hasComponents ? `${props.theme.itemPadding}px` : undefined, - borderRight: props.$hasComponents ? `1px solid ${props.theme.borderColor}` : undefined + borderRight: props.$hasComponents ? `1px solid ${props.theme.borderColor}` : undefined, + wordBreak: 'keep-all', + whiteSpace: 'nowrap', })); const sizeIcon = (size: Size): IconProp => { diff --git a/src/components/World/index.tsx b/src/components/World/index.tsx index 43868543..bff74a16 100644 --- a/src/components/World/index.tsx +++ b/src/components/World/index.tsx @@ -447,7 +447,7 @@ class World extends React.PureComponent { const itemsName = StyledText.compose({ items: [ StyledText.text({ - text: LocalizedString.lookup(Dict.map(tr('Item(s) (%1)'), str => sprintf(str, itemList.length)), locale) + text: LocalizedString.lookup(Dict.map(tr('Item(s) (%s)'), (str: string) => sprintf(str, itemList.length)), locale) }) ] }); @@ -466,7 +466,7 @@ class World extends React.PureComponent { const scriptsName = StyledText.compose({ items: [ StyledText.text({ - text: LocalizedString.lookup(Dict.map(tr('Script(s) (%1)'), str => sprintf(str, scriptList.length)), locale) + text: LocalizedString.lookup(Dict.map(tr('Script(s) (%s)'), (str: string) => sprintf(str, scriptList.length)), locale) }) ] }); diff --git a/src/i18n.ts b/src/i18n.ts index 4fe8aa21..6d70222e 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -5,6 +5,6 @@ export type I18n = Dict>; const I18N = SIMULATOR_I18N as I18n; -export default (enUs: string, description?: string) => I18N[description || ''][enUs] || { +export default (enUs: string, description?: string) => (I18N[description || ''] || {})[enUs] || { [LocalizedString.EN_US]: enUs, }; \ No newline at end of file diff --git a/src/scenes/jbcBase.ts b/src/scenes/jbcBase.ts index 674da4c3..af41c03c 100644 --- a/src/scenes/jbcBase.ts +++ b/src/scenes/jbcBase.ts @@ -213,7 +213,7 @@ export function createCanNode(canNumber: number, canPosition?: Vector3, editable return { type: 'from-template', templateId: 'can', - name: Dict.map(tr('Can %1'), str => sprintf(str, canNumber)), + name: Dict.map(tr('Can %s'), (str: string) => sprintf(str, canNumber)), startingOrigin: origin, origin, editable: editable ?? false, From 30bf196eee3e294e02dfbb73b596ec9cb84c322e Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Fri, 20 Jan 2023 07:48:07 -0500 Subject: [PATCH 08/18] Fix linter issues --- .eslintrc.js | 2 ++ src/components/SettingsDialog.tsx | 9 +++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 031c2320..6c8198a3 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -102,5 +102,7 @@ module.exports = { "/dependencies", // Ignore tests "/test", + // Ignore i18n + "/i18n", ], }; \ No newline at end of file diff --git a/src/components/SettingsDialog.tsx b/src/components/SettingsDialog.tsx index 5d1b0a26..d43f6b54 100644 --- a/src/components/SettingsDialog.tsx +++ b/src/components/SettingsDialog.tsx @@ -91,12 +91,9 @@ interface SectionProps { } const LOCALE_OPTIONS: ComboBox.Option[] = (() => { - const ret = []; - for (const locale of [ LocalizedString.EN_US, LocalizedString.JA_JP ]) { - ret.push({ - text: LocalizedString.NATIVE_LOCALE_NAMES[locale], - data: locale, - }); + const ret: ComboBox.Option[] = []; + for (const locale of [LocalizedString.EN_US, LocalizedString.JA_JP]) { + ret.push(ComboBox.option(LocalizedString.NATIVE_LOCALE_NAMES[locale], locale)); } return ret; })(); From b896e5acd101d6c31763f034338d8c02172fb799 Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Fri, 20 Jan 2023 07:49:06 -0500 Subject: [PATCH 09/18] Fix sprintf format string --- src/components/SceneErrorDialog.tsx | 2 +- src/components/World/index.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/SceneErrorDialog.tsx b/src/components/SceneErrorDialog.tsx index 4dc91eca..5d73c379 100644 --- a/src/components/SceneErrorDialog.tsx +++ b/src/components/SceneErrorDialog.tsx @@ -41,7 +41,7 @@ class SceneErrorDialog extends React.Component { return ( sprintf(str, error.code)), locale)} + name={LocalizedString.lookup(Dict.map(tr('Error %d'), (str: string) => sprintf(str, error.code)), locale)} onClose={onClose} > diff --git a/src/components/World/index.tsx b/src/components/World/index.tsx index bff74a16..80af2c5c 100644 --- a/src/components/World/index.tsx +++ b/src/components/World/index.tsx @@ -447,7 +447,7 @@ class World extends React.PureComponent { const itemsName = StyledText.compose({ items: [ StyledText.text({ - text: LocalizedString.lookup(Dict.map(tr('Item(s) (%s)'), (str: string) => sprintf(str, itemList.length)), locale) + text: LocalizedString.lookup(Dict.map(tr('Item(s) (%d)'), (str: string) => sprintf(str, itemList.length)), locale) }) ] }); @@ -466,7 +466,7 @@ class World extends React.PureComponent { const scriptsName = StyledText.compose({ items: [ StyledText.text({ - text: LocalizedString.lookup(Dict.map(tr('Script(s) (%s)'), (str: string) => sprintf(str, scriptList.length)), locale) + text: LocalizedString.lookup(Dict.map(tr('Script(s) (%d)'), (str: string) => sprintf(str, scriptList.length)), locale) }) ] }); From 2d1ba4044d953db122bf6f8fdab8df688fe48c95 Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Fri, 20 Jan 2023 07:49:47 -0500 Subject: [PATCH 10/18] Update POs --- i18n/po/ar-SA.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/bg-BG.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/cs-CZ.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/da-DK.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/de-DE.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/el-GR.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/en-UK.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/en-US.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/es-ES.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/es-MX.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/fa-IR.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/fi-FI.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/fr-FR.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/he-IL.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/hi-IN.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/hu-HU.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/id-ID.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/it-IT.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/ja-JP.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/ko-KR.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/ms-MY.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/nl-NL.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/no-NO.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/pl-PL.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/pt-BR.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/pt-PT.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/ro-RO.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/ru-RU.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/sk-SK.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/sv-SE.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/th-TH.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/tr-TR.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/ur-PK.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/vi-VN.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/zh-CN.po | 39 +++++++++++++++++++++++++++++++++++++++ i18n/po/zh-TW.po | 39 +++++++++++++++++++++++++++++++++++++++ 36 files changed, 1404 insertions(+) diff --git a/i18n/po/ar-SA.po b/i18n/po/ar-SA.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/ar-SA.po +++ b/i18n/po/ar-SA.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/bg-BG.po b/i18n/po/bg-BG.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/bg-BG.po +++ b/i18n/po/bg-BG.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/cs-CZ.po b/i18n/po/cs-CZ.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/cs-CZ.po +++ b/i18n/po/cs-CZ.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/da-DK.po b/i18n/po/da-DK.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/da-DK.po +++ b/i18n/po/da-DK.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/de-DE.po b/i18n/po/de-DE.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/de-DE.po +++ b/i18n/po/de-DE.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/el-GR.po b/i18n/po/el-GR.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/el-GR.po +++ b/i18n/po/el-GR.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/en-UK.po b/i18n/po/en-UK.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/en-UK.po +++ b/i18n/po/en-UK.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/en-US.po b/i18n/po/en-US.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/en-US.po +++ b/i18n/po/en-US.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/es-ES.po b/i18n/po/es-ES.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/es-ES.po +++ b/i18n/po/es-ES.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/es-MX.po b/i18n/po/es-MX.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/es-MX.po +++ b/i18n/po/es-MX.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/fa-IR.po b/i18n/po/fa-IR.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/fa-IR.po +++ b/i18n/po/fa-IR.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/fi-FI.po b/i18n/po/fi-FI.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/fi-FI.po +++ b/i18n/po/fi-FI.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/fr-FR.po b/i18n/po/fr-FR.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/fr-FR.po +++ b/i18n/po/fr-FR.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/he-IL.po b/i18n/po/he-IL.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/he-IL.po +++ b/i18n/po/he-IL.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/hi-IN.po b/i18n/po/hi-IN.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/hi-IN.po +++ b/i18n/po/hi-IN.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/hu-HU.po b/i18n/po/hu-HU.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/hu-HU.po +++ b/i18n/po/hu-HU.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/id-ID.po b/i18n/po/id-ID.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/id-ID.po +++ b/i18n/po/id-ID.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/it-IT.po b/i18n/po/it-IT.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/it-IT.po +++ b/i18n/po/it-IT.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/ja-JP.po b/i18n/po/ja-JP.po index 5ee9d278..f7372c4d 100644 --- a/i18n/po/ja-JP.po +++ b/i18n/po/ja-JP.po @@ -942,6 +942,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/ko-KR.po b/i18n/po/ko-KR.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/ko-KR.po +++ b/i18n/po/ko-KR.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/ms-MY.po b/i18n/po/ms-MY.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/ms-MY.po +++ b/i18n/po/ms-MY.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/nl-NL.po b/i18n/po/nl-NL.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/nl-NL.po +++ b/i18n/po/nl-NL.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/no-NO.po b/i18n/po/no-NO.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/no-NO.po +++ b/i18n/po/no-NO.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/pl-PL.po b/i18n/po/pl-PL.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/pl-PL.po +++ b/i18n/po/pl-PL.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/pt-BR.po b/i18n/po/pt-BR.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/pt-BR.po +++ b/i18n/po/pt-BR.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/pt-PT.po b/i18n/po/pt-PT.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/pt-PT.po +++ b/i18n/po/pt-PT.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/ro-RO.po b/i18n/po/ro-RO.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/ro-RO.po +++ b/i18n/po/ro-RO.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/ru-RU.po b/i18n/po/ru-RU.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/ru-RU.po +++ b/i18n/po/ru-RU.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/sk-SK.po b/i18n/po/sk-SK.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/sk-SK.po +++ b/i18n/po/sk-SK.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/sv-SE.po b/i18n/po/sv-SE.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/sv-SE.po +++ b/i18n/po/sv-SE.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/th-TH.po b/i18n/po/th-TH.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/th-TH.po +++ b/i18n/po/th-TH.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/tr-TR.po b/i18n/po/tr-TR.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/tr-TR.po +++ b/i18n/po/tr-TR.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/ur-PK.po b/i18n/po/ur-PK.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/ur-PK.po +++ b/i18n/po/ur-PK.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/vi-VN.po b/i18n/po/vi-VN.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/vi-VN.po +++ b/i18n/po/vi-VN.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/zh-CN.po b/i18n/po/zh-CN.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/zh-CN.po +++ b/i18n/po/zh-CN.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" diff --git a/i18n/po/zh-TW.po b/i18n/po/zh-TW.po index e647ac0a..cc48bb4c 100644 --- a/i18n/po/zh-TW.po +++ b/i18n/po/zh-TW.po @@ -932,6 +932,45 @@ msgstr "" msgid "Start" msgstr "" +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" +msgstr "" + +msgid "Can %s" +msgstr "" + +msgid "Item(s) (%d)" +msgstr "" + +msgid "Script(s) (%d)" +msgstr "" + +msgid "Version %s (%s)" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" +msgstr "" + +msgid "Error %d" +msgstr "" + msgid "Volume" msgstr "" From 8b4face5927e97a1ff499642a46d45789b730b80 Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Mon, 6 Feb 2023 14:58:41 -0500 Subject: [PATCH 11/18] Resolve issues with i18n --- Dockerfile | 1 + configs/webpack/common.js | 3 + i18n/generate.ts | 4 +- i18n/i18n.json | 1021 ++++++++++++++++- i18n/po/ar-SA.po | 383 ++++--- i18n/po/bg-BG.po | 383 ++++--- i18n/po/cs-CZ.po | 383 ++++--- i18n/po/da-DK.po | 383 ++++--- i18n/po/de-DE.po | 383 ++++--- i18n/po/el-GR.po | 383 ++++--- i18n/po/en-UK.po | 383 ++++--- i18n/po/en-US.po | 383 ++++--- i18n/po/es-ES.po | 383 ++++--- i18n/po/es-MX.po | 383 ++++--- i18n/po/fa-IR.po | 383 ++++--- i18n/po/fi-FI.po | 383 ++++--- i18n/po/fr-FR.po | 383 ++++--- i18n/po/he-IL.po | 383 ++++--- i18n/po/hi-IN.po | 383 ++++--- i18n/po/hu-HU.po | 383 ++++--- i18n/po/id-ID.po | 383 ++++--- i18n/po/it-IT.po | 383 ++++--- i18n/po/ja-JP.mo | Bin 1200 -> 0 bytes i18n/po/ja-JP.po | 397 ++++--- i18n/po/ko-KR.po | 383 ++++--- i18n/po/ms-MY.po | 383 ++++--- i18n/po/nl-NL.po | 383 ++++--- i18n/po/no-NO.po | 383 ++++--- i18n/po/pl-PL.po | 383 ++++--- i18n/po/pt-BR.po | 383 ++++--- i18n/po/pt-PT.po | 383 ++++--- i18n/po/ro-RO.po | 383 ++++--- i18n/po/ru-RU.po | 383 ++++--- i18n/po/sk-SK.po | 383 ++++--- i18n/po/sv-SE.po | 383 ++++--- i18n/po/th-TH.po | 383 ++++--- i18n/po/tr-TR.po | 383 ++++--- i18n/po/ur-PK.po | 383 ++++--- i18n/po/vi-VN.po | 383 ++++--- i18n/po/zh-CN.po | 383 ++++--- i18n/po/zh-TW.po | 383 ++++--- src/Sim.tsx | 6 - src/components/ChallengeRoot.tsx | 19 +- src/components/Feedback/index.tsx | 4 +- src/components/Info/Info.tsx | 37 +- src/components/Info/Location.tsx | 14 +- src/components/Root.tsx | 19 +- src/components/SettingsDialog.tsx | 2 +- src/components/SimMenu.tsx | 8 +- src/components/World/index.tsx | 2 +- .../documentation/DocumentationWindow.tsx | 15 +- .../documentation/FileDocumentation.tsx | 9 +- .../documentation/FunctionDocumentation.tsx | 12 +- .../documentation/ModuleDocumentation.tsx | 9 +- .../documentation/RootDocumentation.tsx | 18 +- .../documentation/StructureDocumentation.tsx | 11 +- src/util/LocalizedString.ts | 2 +- 57 files changed, 9121 insertions(+), 5897 deletions(-) delete mode 100644 i18n/po/ja-JP.mo diff --git a/Dockerfile b/Dockerfile index 8e2765e0..eb3c27b7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,5 +21,6 @@ EXPOSE 3000 # WORKDIR /app/simulator # RUN yarn install --cache-folder ./.yarncache && yarn build; true RUN yarn install --cache-folder ./.yarncache +RUN yarn run build-i18n RUN export NODE_OPTIONS=--openssl-legacy-provider && yarn build CMD node express.js diff --git a/configs/webpack/common.js b/configs/webpack/common.js index d99dca71..7223a326 100644 --- a/configs/webpack/common.js +++ b/configs/webpack/common.js @@ -4,6 +4,7 @@ const { readFileSync } = require('fs'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const NpmDtsPlugin = require('npm-dts-webpack-plugin') const { DefinePlugin, IgnorePlugin } = require('webpack'); +const process = require('process'); const commitHash = require('child_process').execSync('git rev-parse --short=8 HEAD').toString().trim(); @@ -28,6 +29,8 @@ try { i18n = JSON.parse(readFileSync(resolve(__dirname, '..', '..', 'i18n', 'i18n.json'))); } catch (e) { console.log('Failed to read i18n.json'); + console.log(`Please run 'yarn run build-i18n'`); + process.exit(1); } diff --git a/i18n/generate.ts b/i18n/generate.ts index df6add74..9bed42b7 100644 --- a/i18n/generate.ts +++ b/i18n/generate.ts @@ -88,12 +88,14 @@ for (const sourceFile of sourceFiles) { const translation = po.translations[context][enUs]; if (translation) continue; + if (context.length > 0) console.log(`Adding ${language} translation for "${enUs}" (context: "${context}")`); + po.translations[context][enUs] = { msgid: enUs, + msgctxt: context, msgstr: [''], }; - console.log(`Added ${enUs} to ${language}.po`); } } } diff --git a/i18n/i18n.json b/i18n/i18n.json index abb15594..fe6d2e9c 100644 --- a/i18n/i18n.json +++ b/i18n/i18n.json @@ -1,5 +1,113 @@ { "": { + "Robot": { + "en-US": "Robot" + }, + "Base Scene - Surface A": { + "en-US": "Base Scene - Surface A" + }, + "A base scene using Surface A. Intended to be augmented to create full JBC scenes": { + "en-US": "A base scene using Surface A. Intended to be augmented to create full JBC scenes" + }, + "JBC Surface A": { + "en-US": "JBC Surface A" + }, + "Ground": { + "en-US": "Ground" + }, + "Light": { + "en-US": "Light" + }, + "Base Scene - Surface B": { + "en-US": "Base Scene - Surface B" + }, + "A base scene using Surface B. Intended to be augmented to create full JBC scenes": { + "en-US": "A base scene using Surface B. Intended to be augmented to create full JBC scenes" + }, + "JBC Surface B": { + "en-US": "JBC Surface B" + }, + "Can %s": { + "en-US": "Can %s" + }, + "JBC Sandbox A": { + "en-US": "JBC Sandbox A" + }, + "Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by default.": { + "en-US": "Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by default." + }, + "Paper Ream 1": { + "en-US": "Paper Ream 1" + }, + "Paper Ream 2": { + "en-US": "Paper Ream 2" + }, + "JBC Sandbox B": { + "en-US": "JBC Sandbox B" + }, + "Junior Botball Challenge Sandbox on Mat B.": { + "en-US": "Junior Botball Challenge Sandbox on Mat B." + }, + "JBC 1": { + "en-US": "JBC 1" + }, + "Junior Botball Challenge 1: Tag, You're It!": { + "en-US": "Junior Botball Challenge 1: Tag, You're It!" + }, + "JBC 2": { + "en-US": "JBC 2" + }, + "Junior Botball Challenge 2: Ring Around the Can": { + "en-US": "Junior Botball Challenge 2: Ring Around the Can" + }, + "JBC 2B": { + "en-US": "JBC 2B" + }, + "Junior Botball Challenge 2B: Ring Around the Can, Sr.": { + "en-US": "Junior Botball Challenge 2B: Ring Around the Can, Sr." + }, + "JBC 2C": { + "en-US": "JBC 2C" + }, + "Junior Botball Challenge 2C: Back It Up": { + "en-US": "Junior Botball Challenge 2C: Back It Up" + }, + "JBC 2D": { + "en-US": "JBC 2D" + }, + "Junior Botball Challenge 2D: Ring Around the Can and Back It Up": { + "en-US": "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" + }, + "JBC 3": { + "en-US": "JBC 3" + }, + "Junior Botball Challenge 3: Precision Parking": { + "en-US": "Junior Botball Challenge 3: Precision Parking" + }, + "JBC 3B": { + "en-US": "JBC 3B" + }, + "Junior Botball Challenge 3B: Parallel Parking": { + "en-US": "Junior Botball Challenge 3B: Parallel Parking" + }, + "JBC 3C": { + "en-US": "JBC 3C" + }, + "Junior Botball Challenge 3C: Quick Get Away!": { + "en-US": "Junior Botball Challenge 3C: Quick Get Away!" + }, + "JBC 4": { + "en-US": "JBC 4" + }, + "Junior Botball Challenge 4: Figure Eight": { + "en-US": "Junior Botball Challenge 4: Figure Eight" + }, + "JBC 4B": { + "en-US": "JBC 4B" + }, + "Junior Botball Challenge 4B: Barrel Racing": { + "en-US": "Junior Botball Challenge 4B: Barrel Racing" + }, "JBC 5": { "en-US": "JBC 5" }, @@ -18,52 +126,925 @@ "Junior Botball Challenge 5C: Synchronized Dancing": { "en-US": "Junior Botball Challenge 5C: Synchronized Dancing" }, - "test": { - "en-US": "test" + "JBC 6": { + "en-US": "JBC 6" + }, + "Junior Botball Challenge 6: Load 'Em Up": { + "en-US": "Junior Botball Challenge 6: Load 'Em Up" + }, + "JBC 6B": { + "en-US": "JBC 6B" + }, + "Junior Botball Challenge 6B: Pick 'Em Up": { + "en-US": "Junior Botball Challenge 6B: Pick 'Em Up" + }, + "JBC 6C": { + "en-US": "JBC 6C" + }, + "Junior Botball Challenge 6C: Empty the Garage": { + "en-US": "Junior Botball Challenge 6C: Empty the Garage" + }, + "Circle 2": { + "en-US": "Circle 2" + }, + "Circle 9": { + "en-US": "Circle 9" + }, + "Circle 10": { + "en-US": "Circle 10" + }, + "Mat Surface": { + "en-US": "Mat Surface" + }, + "JBC 7": { + "en-US": "JBC 7" + }, + "Junior Botball Challenge 7: Bulldozer Mania": { + "en-US": "Junior Botball Challenge 7: Bulldozer Mania" + }, + "JBC 7B": { + "en-US": "JBC 7B" + }, + "Junior Botball Challenge 7B: Cover Your Bases": { + "en-US": "Junior Botball Challenge 7B: Cover Your Bases" + }, + "JBC 8": { + "en-US": "JBC 8" + }, + "Junior Botball Challenge 8: Serpentine": { + "en-US": "Junior Botball Challenge 8: Serpentine" + }, + "JBC 8B": { + "en-US": "JBC 8B" + }, + "Junior Botball Challenge 8B: Serpentine Jr.": { + "en-US": "Junior Botball Challenge 8B: Serpentine Jr." + }, + "JBC 9": { + "en-US": "JBC 9" + }, + "Junior Botball Challenge 9: Add It Up": { + "en-US": "Junior Botball Challenge 9: Add It Up" + }, + "JBC 9B": { + "en-US": "JBC 9B" + }, + "Junior Botball Challenge 9B: Balancing Act": { + "en-US": "Junior Botball Challenge 9B: Balancing Act" + }, + "JBC 10": { + "en-US": "JBC 10" + }, + "Junior Botball Challenge 10: Solo Joust": { + "en-US": "Junior Botball Challenge 10: Solo Joust" + }, + "JBC 10B": { + "en-US": "JBC 10B" + }, + "Junior Botball Challenge 10: Solo Joust Jr.": { + "en-US": "Junior Botball Challenge 10: Solo Joust Jr." + }, + "JBC 12": { + "en-US": "JBC 12" + }, + "Junior Botball Challenge 12: Unload 'Em": { + "en-US": "Junior Botball Challenge 12: Unload 'Em" + }, + "JBC 13": { + "en-US": "JBC 13" + }, + "Junior Botball Challenge 13: Clean the Mat": { + "en-US": "Junior Botball Challenge 13: Clean the Mat" + }, + "JBC 15B": { + "en-US": "JBC 15B" + }, + "Junior Botball Challenge 15B: Bump Bump": { + "en-US": "Junior Botball Challenge 15B: Bump Bump" + }, + "JBC 17": { + "en-US": "JBC 17" + }, + "Junior Botball Challenge 17: Walk the Line": { + "en-US": "Junior Botball Challenge 17: Walk the Line" + }, + "JBC 17B": { + "en-US": "JBC 17B" + }, + "Junior Botball Challenge 17: Walk the Line II": { + "en-US": "Junior Botball Challenge 17: Walk the Line II" + }, + "JBC 19": { + "en-US": "JBC 19" + }, + "Junior Botball Challenge 19: Mountain Rescue": { + "en-US": "Junior Botball Challenge 19: Mountain Rescue" + }, + "Paper Ream": { + "en-US": "Paper Ream" + }, + "JBC 20": { + "en-US": "JBC 20" + }, + "Junior Botball Challenge 20: Rescue the Cans": { + "en-US": "Junior Botball Challenge 20: Rescue the Cans" + }, + "JBC 21": { + "en-US": "JBC 21" + }, + "Junior Botball Challenge 21: Foot Tall": { + "en-US": "Junior Botball Challenge 21: Foot Tall" + }, + "JBC 22": { + "en-US": "JBC 22" + }, + "Junior Botball Challenge 22: Stackerz": { + "en-US": "Junior Botball Challenge 22: Stackerz" + }, + "Script Playground": { + "en-US": "Script Playground" + }, + "Script tests": { + "en-US": "Script tests" + }, + "Demobot": { + "en-US": "Demobot" + }, + "JBC Challenge 6C": { + "en-US": "JBC Challenge 6C" + }, + "Can A Lifted": { + "en-US": "Can A Lifted" + }, + "Can A picked up": { + "en-US": "Can A picked up" + }, + "Can B Lifted": { + "en-US": "Can B Lifted" + }, + "Can B picked up": { + "en-US": "Can B picked up" + }, + "Can C Lifted": { + "en-US": "Can C Lifted" + }, + "Can C picked up": { + "en-US": "Can C picked up" + }, + "Can A Placed": { + "en-US": "Can A Placed" + }, + "Can A placed on circle 2": { + "en-US": "Can A placed on circle 2" + }, + "Can B Placed": { + "en-US": "Can B Placed" + }, + "Can A placed on circle 9": { + "en-US": "Can A placed on circle 9" + }, + "Can C Placed": { + "en-US": "Can C Placed" + }, + "Can A placed on circle 10": { + "en-US": "Can A placed on circle 10" + }, + "Can A Upright": { + "en-US": "Can A Upright" + }, + "Can A upright on circle 2": { + "en-US": "Can A upright on circle 2" + }, + "Can B Upright": { + "en-US": "Can B Upright" + }, + "Can B upright on circle 9": { + "en-US": "Can B upright on circle 9" + }, + "Can C Upright": { + "en-US": "Can C Upright" + }, + "Can C upright on circle 10": { + "en-US": "Can C upright on circle 10" + }, + "Loading...": { + "en-US": "Loading..." + }, + "Logout": { + "en-US": "Logout" + }, + "Tutorials": { + "en-US": "Tutorials" + }, + "Learn how to get started with the simulator": { + "en-US": "Learn how to get started with the simulator" + }, + "3D Simulator": { + "en-US": "3D Simulator" + }, + "A simulator for the Botball demobot.": { + "en-US": "A simulator for the Botball demobot." + }, + "About": { + "en-US": "About" + }, + "KIPR is a 501(c) 3 organization started to make the long-term educational benefits of robotics accessible to students.": { + "en-US": "KIPR is a 501(c) 3 organization started to make the long-term educational benefits of robotics accessible to students." + }, + "Quick Start": { + "en-US": "Quick Start" + }, + "Navigating in 3D": { + "en-US": "Navigating in 3D" + }, + "Learn the controls for navigating in 3D in the simulator": { + "en-US": "Learn the controls for navigating in 3D in the simulator" + }, + "Robot Section": { + "en-US": "Robot Section" + }, + "How to use the robot section": { + "en-US": "How to use the robot section" + }, + "World Section": { + "en-US": "World Section" + }, + "Learn how to create and manipulate items and scene in the simulator": { + "en-US": "Learn how to create and manipulate items and scene in the simulator" + }, + "Indent": { + "en-US": "Indent" + }, + "Download": { + "en-US": "Download" + }, + "Reset": { + "en-US": "Reset" + }, + "Error(s)": { + "en-US": "Error(s)" + }, + "Warning(s)": { + "en-US": "Warning(s)" + }, + "grams": { + "en-US": "grams" + }, + "kilograms": { + "en-US": "kilograms" + }, + "pounds": { + "en-US": "pounds" + }, + "ounces": { + "en-US": "ounces" + }, + "meters": { + "en-US": "meters" + }, + "centimeters": { + "en-US": "centimeters" + }, + "feet": { + "en-US": "feet" + }, + "inches": { + "en-US": "inches" + }, + "radians": { + "en-US": "radians" + }, + "degrees": { + "en-US": "degrees" + }, + "Can": { + "en-US": "Can" + }, + "Box": { + "en-US": "Box" + }, + "Sphere": { + "en-US": "Sphere" + }, + "Cylinder": { + "en-US": "Cylinder" + }, + "Cone": { + "en-US": "Cone" + }, + "Plane": { + "en-US": "Plane" + }, + "File": { + "en-US": "File" + }, + "Euler": { + "en-US": "Euler" + }, + "Axis Angle": { + "en-US": "Axis Angle" + }, + "Empty": { + "en-US": "Empty" + }, + "Standard Object": { + "en-US": "Standard Object" + }, + "Custom Object": { + "en-US": "Custom Object" + }, + "Point Light": { + "en-US": "Point Light" + }, + "Unset": { + "en-US": "Unset" + }, + "Basic": { + "en-US": "Basic" + }, + "Texture": { + "en-US": "Texture" + }, + "Value": { + "en-US": "Value" + }, + "General": { + "en-US": "General" + }, + "Name": { + "en-US": "Name" + }, + "Type": { + "en-US": "Type" + }, + "Geometry": { + "en-US": "Geometry" + }, + "Item": { + "en-US": "Item" + }, + "Box Options": { + "en-US": "Box Options" + }, + "Size X": { + "en-US": "Size X" + }, + "Size Y": { + "en-US": "Size Y" + }, + "Size Z": { + "en-US": "Size Z" + }, + "Sphere Options": { + "en-US": "Sphere Options" + }, + "Radius": { + "en-US": "Radius" + }, + "Cylinder Options": { + "en-US": "Cylinder Options" + }, + "Height": { + "en-US": "Height" + }, + "Plane Options": { + "en-US": "Plane Options" + }, + "File Options": { + "en-US": "File Options" + }, + "URI": { + "en-US": "URI" + }, + "Material": { + "en-US": "Material" + }, + "Color Type": { + "en-US": "Color Type" + }, + "Color Red": { + "en-US": "Color Red" + }, + "Color Green": { + "en-US": "Color Green" + }, + "Color Blue": { + "en-US": "Color Blue" + }, + "Color Texture URI": { + "en-US": "Color Texture URI" + }, + "Albedo Type": { + "en-US": "Albedo Type" + }, + "Albedo Red": { + "en-US": "Albedo Red" + }, + "Albedo Green": { + "en-US": "Albedo Green" + }, + "Albedo Blue": { + "en-US": "Albedo Blue" + }, + "Albedo Texture URI": { + "en-US": "Albedo Texture URI" + }, + "Reflection Type": { + "en-US": "Reflection Type" + }, + "Reflection Red": { + "en-US": "Reflection Red" + }, + "Reflection Green": { + "en-US": "Reflection Green" + }, + "Reflection Blue": { + "en-US": "Reflection Blue" + }, + "Reflection Texture URI": { + "en-US": "Reflection Texture URI" + }, + "Emissive Type": { + "en-US": "Emissive Type" + }, + "Emissive Red": { + "en-US": "Emissive Red" + }, + "Emissive Green": { + "en-US": "Emissive Green" + }, + "Emissive Blue": { + "en-US": "Emissive Blue" + }, + "Emissive Texture URI": { + "en-US": "Emissive Texture URI" + }, + "Ambient Type": { + "en-US": "Ambient Type" + }, + "Ambient Red": { + "en-US": "Ambient Red" + }, + "Ambient Green": { + "en-US": "Ambient Green" + }, + "Ambient Blue": { + "en-US": "Ambient Blue" + }, + "Ambient Texture URI": { + "en-US": "Ambient Texture URI" + }, + "Metalness Type": { + "en-US": "Metalness Type" + }, + "Metalness": { + "en-US": "Metalness" + }, + "Metalness Texture URI": { + "en-US": "Metalness Texture URI" + }, + "Position": { + "en-US": "Position" + }, + "X": { + "en-US": "X" + }, + "Y": { + "en-US": "Y" + }, + "Z": { + "en-US": "Z" + }, + "Orientation": { + "en-US": "Orientation" + }, + "Order": { + "en-US": "Order" + }, + "Angle": { + "en-US": "Angle" + }, + "Scale": { + "en-US": "Scale" + }, + "Physics": { + "en-US": "Physics" + }, + "Mass": { + "en-US": "Mass" + }, + "Friction": { + "en-US": "Friction" + }, + "Unnamed Object": { + "en-US": "Unnamed Object" + }, + "Add Item": { + "en-US": "Add Item" + }, + "Accept": { + "en-US": "Accept" }, "Settings": { "en-US": "Settings" }, - "User Interface": { - "en-US": "User Interface", - "ja-JP": "ユーザーインターフェース" + "Add Script": { + "en-US": "Add Script" }, - "Simulation": { - "en-US": "Simulation", - "ja-JP": "シミュレーション" + "Select Scene": { + "en-US": "Select Scene" + }, + "Save Scene": { + "en-US": "Save Scene" + }, + "Copy Scene": { + "en-US": "Copy Scene" + }, + "Item(s) (%d)": { + "en-US": "Item(s) (%d)" + }, + "Script(s) (%d)": { + "en-US": "Script(s) (%d)" + }, + "Layouts": { + "en-US": "Layouts" + }, + "Overlay": { + "en-US": "Overlay" + }, + "Side": { + "en-US": "Side" + }, + "Options": { + "en-US": "Options" + }, + "Show All": { + "en-US": "Show All" + }, + "Hide All": { + "en-US": "Hide All" + }, + "Clear": { + "en-US": "Clear" + }, + "Rotation": { + "en-US": "Rotation" + }, + "Start Location": { + "en-US": "Start Location" + }, + "Motor Velocity Plot": { + "en-US": "Motor Velocity Plot" + }, + "Motor Position Plot": { + "en-US": "Motor Position Plot" + }, + "Analog Sensor Plot": { + "en-US": "Analog Sensor Plot" + }, + "Digital Sensor Plot": { + "en-US": "Digital Sensor Plot" + }, + "Analog Sensors": { + "en-US": "Analog Sensors" + }, + "Digital Sensors": { + "en-US": "Digital Sensors" + }, + "Servos": { + "en-US": "Servos" + }, + "Motor Velocities": { + "en-US": "Motor Velocities" + }, + "Motor Positions": { + "en-US": "Motor Positions" + }, + "This process is taking longer than expected...\nIf you have a poor internet connection, this can take some time": { + "en-US": "This process is taking longer than expected...\nIf you have a poor internet connection, this can take some time" + }, + "The simulator may have failed to load.\nPlease submit a feedback form to let us know!": { + "en-US": "The simulator may have failed to load.\nPlease submit a feedback form to let us know!" + }, + "Initializing Simulator...": { + "en-US": "Initializing Simulator..." + }, + "all of": { + "en-US": "all of" + }, + "one or more of": { + "en-US": "one or more of" + }, + "exactly one of": { + "en-US": "exactly one of" + }, + "once": { + "en-US": "once" + }, + "not": { + "en-US": "not" + }, + "Success": { + "en-US": "Success" + }, + "Failure": { + "en-US": "Failure" }, "Editor": { - "en-US": "Editor", - "ja-JP": "編集者" + "en-US": "Editor" + }, + "World": { + "en-US": "World" + }, + "Script Editor": { + "en-US": "Script Editor" + }, + "Console": { + "en-US": "Console" + }, + "Open": { + "en-US": "Open" + }, + "Save": { + "en-US": "Save" + }, + "Save As": { + "en-US": "Save As" + }, + "Delete": { + "en-US": "Delete" + }, + "Documentation": { + "en-US": "Documentation" + }, + "Feedback": { + "en-US": "Feedback" + }, + "Reset World": { + "en-US": "Reset World" + }, + "Layout": { + "en-US": "Layout" + }, + "User Interface": { + "en-US": "User Interface" + }, + "Simulation": { + "en-US": "Simulation" }, "Locale": { - "en-US": "Locale", - "ja-JP": "言語" + "en-US": "Locale" }, "Switch languages": { - "en-US": "Switch languages", - "ja-JP": "言語切り替え" + "en-US": "Switch languages" }, "Sensor noise": { "en-US": "Sensor noise" }, "Controls whether sensor outputs are affected by random noise": { - "en-US": "Controls whether sensor outputs are affected by random noise", - "ja-JP": "センサー出力がランダムノイズの影響を受けるかどうかを制御する" + "en-US": "Controls whether sensor outputs are affected by random noise" }, "Realistic sensors": { "en-US": "Realistic sensors" }, "Controls whether sensors behave like real-world sensors instead of like ideal sensors. For example, real-world ET sensors are nonlinear": { - "en-US": "Controls whether sensors behave like real-world sensors instead of like ideal sensors. For example, real-world ET sensors are nonlinear", - "ja-JP": "センサーが理想的なセンサーではなく、現実のセンサーのように振る舞うかどうかを制御します。例えば、実世界のETセンサーは非線形である" + "en-US": "Controls whether sensors behave like real-world sensors instead of like ideal sensors. For example, real-world ET sensors are nonlinear" }, "Autocomplete": { "en-US": "Autocomplete" }, "Controls autocompletion of code, brackets, and quotes": { - "en-US": "Controls autocompletion of code, brackets, and quotes", - "ja-JP": "コード、括弧、引用符のオートコンプリートを制御する。" + "en-US": "Controls autocompletion of code, brackets, and quotes" + }, + "Version %s (%s)": { + "en-US": "Version %s (%s)" + }, + "Copyright": { + "en-US": "Copyright" + }, + "This software is licensed under the terms of the": { + "en-US": "This software is licensed under the terms of the" + }, + "Thank you to the following contributors and testers:": { + "en-US": "Thank you to the following contributors and testers:" + }, + "Want to help improve the simulator and get your name listed here?": { + "en-US": "Want to help improve the simulator and get your name listed here?" + }, + "GitHub repository": { + "en-US": "GitHub repository" + }, + "We're happy to help you get started!": { + "en-US": "We're happy to help you get started!" + }, + "Give a helpful description of a problem you're facing, or a feature you'd like to request": { + "en-US": "Give a helpful description of a problem you're facing, or a feature you'd like to request" + }, + "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? Let us know!": { + "en-US": "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? Let us know!" + }, + "How has your experience using the KIPR Simulator been?": { + "en-US": "How has your experience using the KIPR Simulator been?" + }, + "Email (optional): ": { + "en-US": "Email (optional): " + }, + "Include anonymous usage data to help KIPR developers": { + "en-US": "Include anonymous usage data to help KIPR developers" + }, + "Please try again,": { + "en-US": "Please try again," + }, + "open an issue on our github page": { + "en-US": "open an issue on our github page" + }, + ", or": { + "en-US": ", or" + }, + "email KIPR.": { + "en-US": "email KIPR." + }, + "Submit": { + "en-US": "Submit" + }, + "Feedback Success": { + "en-US": "Feedback Success" + }, + "Feedback successfully submitted!": { + "en-US": "Feedback successfully submitted!" + }, + "Thank you for helping improve the KIPR Simulator!": { + "en-US": "Thank you for helping improve the KIPR Simulator!" + }, + "Open World": { + "en-US": "Open World" + }, + "Unknown": { + "en-US": "Unknown" + }, + "Description: ": { + "en-US": "Description: " + }, + "Author: ": { + "en-US": "Author: " + }, + "Me": { + "en-US": "Me" + }, + "Select a scene to see more details": { + "en-US": "Select a scene to see more details" + }, + "Description": { + "en-US": "Description" + }, + "New World": { + "en-US": "New World" + }, + "Create": { + "en-US": "Create" + }, + "Delete %s?": { + "en-US": "Delete %s?" + }, + "Are you sure you want to delete %s?": { + "en-US": "Are you sure you want to delete %s?" + }, + "Copy World": { + "en-US": "Copy World" + }, + "Error %d": { + "en-US": "Error %d" + }, + "Closing this dialog will take you back to the last well-known state.": { + "en-US": "Closing this dialog will take you back to the last well-known state." + }, + "If this error persists, please submit feedback.": { + "en-US": "If this error persists, please submit feedback." + }, + "World Settings": { + "en-US": "World Settings" + }, + "CHALLENGE": { + "en-US": "CHALLENGE" + }, + "Start": { + "en-US": "Start" + }, + "Welcome to the KIPR Simulator!\n": { + "en-US": "Welcome to the KIPR Simulator!\n" + }, + "Compiling...\n": { + "en-US": "Compiling...\n" + }, + "Compilation succeeded with warnings.\n": { + "en-US": "Compilation succeeded with warnings.\n" + }, + "Compilation succeeded.\n": { + "en-US": "Compilation succeeded.\n" + }, + "Compilation failed.\n": { + "en-US": "Compilation failed.\n" + }, + "Something went wrong during compilation.\n": { + "en-US": "Something went wrong during compilation.\n" + }, + "Compilation succeeded with warnings\n": { + "en-US": "Compilation succeeded with warnings\n" + }, + "Compilation succeeded\n": { + "en-US": "Compilation succeeded\n" + }, + "Modules": { + "en-US": "Modules" + }, + "Functions": { + "en-US": "Functions" + }, + "Structures": { + "en-US": "Structures" + }, + "Enumerations": { + "en-US": "Enumerations" + }, + "Files": { + "en-US": "Files" + }, + "Search...": { + "en-US": "Search..." + }, + "Detailed Description": { + "en-US": "Detailed Description" + }, + "Parameters": { + "en-US": "Parameters" + }, + "Return Value": { + "en-US": "Return Value" + }, + "Fields": { + "en-US": "Fields" + }, + "Volume": { + "en-US": "Volume" + }, + "RGB": { + "en-US": "RGB" + }, + "Challenge": { + "en-US": "Challenge" + }, + "Stop": { + "en-US": "Stop" + }, + "Run": { + "en-US": "Run" + }, + "and External Contributors": { + "en-US": "and External Contributors" + }, + "Visit our": { + "en-US": "Visit our" + } + }, + "Volume (box) in the 3D scene": { + "Volume": { + "en-US": "Volume" + } + }, + "Red, Green, Blue": { + "RGB": { + "en-US": "RGB" + } + }, + "Computer text command line (e.g., DOS)": { + "Console": { + "en-US": "Console" + } + }, + "A predefined task for the user to complete": { + "Challenge": { + "en-US": "Challenge" + } + }, + "Terminate program execution": { + "Stop": { + "en-US": "Stop" + } + }, + "Begin program execution": { + "Run": { + "en-US": "Run" + } + }, + "Part of copyright notice, after KIPR is listed": { + "and External Contributors": { + "en-US": "and External Contributors", + "ur-PK": "asdasdasd" + } + }, + "URL link to github repository follows": { + "Visit our": { + "en-US": "Visit our" } } } \ No newline at end of file diff --git a/i18n/po/ar-SA.po b/i18n/po/ar-SA.po index cc48bb4c..2581034d 100644 --- a/i18n/po/ar-SA.po +++ b/i18n/po/ar-SA.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/bg-BG.po b/i18n/po/bg-BG.po index cc48bb4c..2581034d 100644 --- a/i18n/po/bg-BG.po +++ b/i18n/po/bg-BG.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/cs-CZ.po b/i18n/po/cs-CZ.po index cc48bb4c..2581034d 100644 --- a/i18n/po/cs-CZ.po +++ b/i18n/po/cs-CZ.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/da-DK.po b/i18n/po/da-DK.po index cc48bb4c..2581034d 100644 --- a/i18n/po/da-DK.po +++ b/i18n/po/da-DK.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/de-DE.po b/i18n/po/de-DE.po index cc48bb4c..2581034d 100644 --- a/i18n/po/de-DE.po +++ b/i18n/po/de-DE.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/el-GR.po b/i18n/po/el-GR.po index cc48bb4c..2581034d 100644 --- a/i18n/po/el-GR.po +++ b/i18n/po/el-GR.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/en-UK.po b/i18n/po/en-UK.po index cc48bb4c..2581034d 100644 --- a/i18n/po/en-UK.po +++ b/i18n/po/en-UK.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/en-US.po b/i18n/po/en-US.po index cc48bb4c..2581034d 100644 --- a/i18n/po/en-US.po +++ b/i18n/po/en-US.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/es-ES.po b/i18n/po/es-ES.po index cc48bb4c..2581034d 100644 --- a/i18n/po/es-ES.po +++ b/i18n/po/es-ES.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/es-MX.po b/i18n/po/es-MX.po index cc48bb4c..2581034d 100644 --- a/i18n/po/es-MX.po +++ b/i18n/po/es-MX.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/fa-IR.po b/i18n/po/fa-IR.po index cc48bb4c..2581034d 100644 --- a/i18n/po/fa-IR.po +++ b/i18n/po/fa-IR.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/fi-FI.po b/i18n/po/fi-FI.po index cc48bb4c..2581034d 100644 --- a/i18n/po/fi-FI.po +++ b/i18n/po/fi-FI.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/fr-FR.po b/i18n/po/fr-FR.po index cc48bb4c..2581034d 100644 --- a/i18n/po/fr-FR.po +++ b/i18n/po/fr-FR.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/he-IL.po b/i18n/po/he-IL.po index cc48bb4c..2581034d 100644 --- a/i18n/po/he-IL.po +++ b/i18n/po/he-IL.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/hi-IN.po b/i18n/po/hi-IN.po index cc48bb4c..2581034d 100644 --- a/i18n/po/hi-IN.po +++ b/i18n/po/hi-IN.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/hu-HU.po b/i18n/po/hu-HU.po index cc48bb4c..2581034d 100644 --- a/i18n/po/hu-HU.po +++ b/i18n/po/hu-HU.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/id-ID.po b/i18n/po/id-ID.po index cc48bb4c..2581034d 100644 --- a/i18n/po/id-ID.po +++ b/i18n/po/id-ID.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/it-IT.po b/i18n/po/it-IT.po index cc48bb4c..2581034d 100644 --- a/i18n/po/it-IT.po +++ b/i18n/po/it-IT.po @@ -1,97 +1,64 @@ msgid "" msgstr "Content-Type: text/plain\n" -msgid "JBC 5" -msgstr "" - -msgid "Junior Botball Challenge 5: Dance Party" -msgstr "" - -msgid "JBC 5B" -msgstr "" - -msgid "Junior Botball Challenge 5B: Line Dance" -msgstr "" - -msgid "JBC 5C" -msgstr "" - -msgid "Junior Botball Challenge 5C: Synchronized Dancing" -msgstr "" - -msgid "test" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "User Interface" -msgstr "" - -msgid "Simulation" +msgid "Robot" msgstr "" -msgid "Editor" +msgid "Base Scene - Surface A" msgstr "" -msgid "Locale" +msgid "" +"A base scene using Surface A. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Switch languages" +msgid "JBC Surface A" msgstr "" -msgid "Sensor noise" +msgid "Ground" msgstr "" -msgid "Controls whether sensor outputs are affected by random noise" +msgid "Light" msgstr "" -msgid "Realistic sensors" +msgid "Base Scene - Surface B" msgstr "" msgid "" -"Controls whether sensors behave like real-world sensors instead of like " -"ideal sensors. For example, real-world ET sensors are nonlinear" -msgstr "" - -msgid "Autocomplete" +"A base scene using Surface B. Intended to be augmented to create full JBC " +"scenes" msgstr "" -msgid "Controls autocompletion of code, brackets, and quotes" +msgid "JBC Surface B" msgstr "" -msgid "Robot" +msgid "Can %s" msgstr "" -msgid "Base Scene - Surface A" +msgid "JBC Sandbox A" msgstr "" msgid "" -"A base scene using Surface A. Intended to be augmented to create full JBC " -"scenes" -msgstr "" - -msgid "JBC Surface A" +"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " +"default." msgstr "" -msgid "Ground" +msgid "Paper Ream 1" msgstr "" -msgid "Light" +msgid "Paper Ream 2" msgstr "" -msgid "Base Scene - Surface B" +msgid "JBC Sandbox B" msgstr "" -msgid "" -"A base scene using Surface B. Intended to be augmented to create full JBC " -"scenes" +msgid "Junior Botball Challenge Sandbox on Mat B." msgstr "" -msgid "JBC Surface B" +msgid "JBC 1" msgstr "" -msgid "JBC 1" +msgid "Junior Botball Challenge 1: Tag, You're It!" msgstr "" msgid "JBC 2" @@ -148,60 +115,52 @@ msgstr "" msgid "Junior Botball Challenge 4B: Barrel Racing" msgstr "" -msgid "JBC 6" -msgstr "" - -msgid "JBC 6B" -msgstr "" - -msgid "JBC 6C" +msgid "JBC 5" msgstr "" -msgid "Circle 2" +msgid "Junior Botball Challenge 5: Dance Party" msgstr "" -msgid "Circle 9" +msgid "JBC 5B" msgstr "" -msgid "Circle 10" +msgid "Junior Botball Challenge 5B: Line Dance" msgstr "" -msgid "Mat Surface" +msgid "JBC 5C" msgstr "" -msgid "Can %1" +msgid "Junior Botball Challenge 5C: Synchronized Dancing" msgstr "" -msgid "JBC Sandbox A" +msgid "JBC 6" msgstr "" -msgid "" -"Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by " -"default." +msgid "Junior Botball Challenge 6: Load 'Em Up" msgstr "" -msgid "Paper Ream 1" +msgid "JBC 6B" msgstr "" -msgid "Paper Ream 2" +msgid "Junior Botball Challenge 6B: Pick 'Em Up" msgstr "" -msgid "JBC Sandbox B" +msgid "JBC 6C" msgstr "" -msgid "Junior Botball Challenge Sandbox on Mat B." +msgid "Junior Botball Challenge 6C: Empty the Garage" msgstr "" -msgid "Junior Botball Challenge 1: Tag, You're It!" +msgid "Circle 2" msgstr "" -msgid "Junior Botball Challenge 6: Load 'Em Up" +msgid "Circle 9" msgstr "" -msgid "Junior Botball Challenge 6B: Pick 'Em Up" +msgid "Circle 10" msgstr "" -msgid "Junior Botball Challenge 6C: Empty the Garage" +msgid "Mat Surface" msgstr "" msgid "JBC 7" @@ -318,135 +277,108 @@ msgstr "" msgid "Demobot" msgstr "" -msgid "Tutorials" -msgstr "" - -msgid "Learn how to get started with the simulator" -msgstr "" - -msgid "3D Simulator" -msgstr "" - -msgid "A simulator for the Botball demobot." -msgstr "" - -msgid "About" -msgstr "" - -msgid "" -"KIPR is a 501(c) 3 organization started to make the long-term educational " -"benefits of robotics accessible to students." -msgstr "" - -msgid "Quick Start" -msgstr "" - -msgid "Navigating in 3D" -msgstr "" - -msgid "Learn the controls for navigating in 3D in the simulator" -msgstr "" - -msgid "Robot Section" +msgid "JBC Challenge 6C" msgstr "" -msgid "How to use the robot section" +msgid "Can A Lifted" msgstr "" -msgid "World Section" +msgid "Can A picked up" msgstr "" -msgid "Learn how to create and manipulate items and scene in the simulator" +msgid "Can B Lifted" msgstr "" -msgid "Open World" +msgid "Can B picked up" msgstr "" -msgid "Unknown" +msgid "Can C Lifted" msgstr "" -msgid "Description: " +msgid "Can C picked up" msgstr "" -msgid "Author: " +msgid "Can A Placed" msgstr "" -msgid "Me" +msgid "Can A placed on circle 2" msgstr "" -msgid "Select a scene to see more details" +msgid "Can B Placed" msgstr "" -msgid "New World" +msgid "Can A placed on circle 9" msgstr "" -msgid "Create" +msgid "Can C Placed" msgstr "" -msgid "Volume" +msgid "Can A placed on circle 10" msgstr "" -msgid "JBC Challenge 6C" +msgid "Can A Upright" msgstr "" -msgid "Can A Lifted" +msgid "Can A upright on circle 2" msgstr "" -msgid "Can A picked up" +msgid "Can B Upright" msgstr "" -msgid "Can B Lifted" +msgid "Can B upright on circle 9" msgstr "" -msgid "Can B picked up" +msgid "Can C Upright" msgstr "" -msgid "Can C Lifted" +msgid "Can C upright on circle 10" msgstr "" -msgid "Can C picked up" +msgid "Loading..." msgstr "" -msgid "Can A Placed" +msgid "Logout" msgstr "" -msgid "Can A placed on circle 2" +msgid "Tutorials" msgstr "" -msgid "Can B Placed" +msgid "Learn how to get started with the simulator" msgstr "" -msgid "Can A placed on circle 9" +msgid "3D Simulator" msgstr "" -msgid "Can C Placed" +msgid "A simulator for the Botball demobot." msgstr "" -msgid "Can A placed on circle 10" +msgid "About" msgstr "" -msgid "Can A Upright" +msgid "" +"KIPR is a 501(c) 3 organization started to make the long-term educational " +"benefits of robotics accessible to students." msgstr "" -msgid "Can A upright on circle 2" +msgid "Quick Start" msgstr "" -msgid "Can B Upright" +msgid "Navigating in 3D" msgstr "" -msgid "Can B upright on circle 9" +msgid "Learn the controls for navigating in 3D in the simulator" msgstr "" -msgid "Can C Upright" +msgid "Robot Section" msgstr "" -msgid "Can C upright on circle 10" +msgid "How to use the robot section" msgstr "" -msgid "Loading..." +msgid "World Section" msgstr "" -msgid "Logout" +msgid "Learn how to create and manipulate items and scene in the simulator" msgstr "" msgid "Indent" @@ -722,6 +654,9 @@ msgstr "" msgid "Accept" msgstr "" +msgid "Settings" +msgstr "" + msgid "Add Script" msgstr "" @@ -734,10 +669,10 @@ msgstr "" msgid "Copy Scene" msgstr "" -msgid "Item(s) (%1)" +msgid "Item(s) (%d)" msgstr "" -msgid "Script(s) (%1)" +msgid "Script(s) (%d)" msgstr "" msgid "Layouts" @@ -761,6 +696,9 @@ msgstr "" msgid "Clear" msgstr "" +msgid "Rotation" +msgstr "" + msgid "Start Location" msgstr "" @@ -782,6 +720,15 @@ msgstr "" msgid "Digital Sensors" msgstr "" +msgid "Servos" +msgstr "" + +msgid "Motor Velocities" +msgstr "" + +msgid "Motor Positions" +msgstr "" + msgid "" "This process is taking longer than expected...\n" "If you have a poor internet connection, this can take some time" @@ -816,6 +763,9 @@ msgstr "" msgid "Failure" msgstr "" +msgid "Editor" +msgstr "" + msgid "World" msgstr "" @@ -843,7 +793,45 @@ msgstr "" msgid "Feedback" msgstr "" -msgid "Version %1 (%2)" +msgid "Reset World" +msgstr "" + +msgid "Layout" +msgstr "" + +msgid "User Interface" +msgstr "" + +msgid "Simulation" +msgstr "" + +msgid "Locale" +msgstr "" + +msgid "Switch languages" +msgstr "" + +msgid "Sensor noise" +msgstr "" + +msgid "Controls whether sensor outputs are affected by random noise" +msgstr "" + +msgid "Realistic sensors" +msgstr "" + +msgid "" +"Controls whether sensors behave like real-world sensors instead of like " +"ideal sensors. For example, real-world ET sensors are nonlinear" +msgstr "" + +msgid "Autocomplete" +msgstr "" + +msgid "Controls autocompletion of code, brackets, and quotes" +msgstr "" + +msgid "Version %s (%s)" msgstr "" msgid "Copyright" @@ -864,6 +852,11 @@ msgstr "" msgid "We're happy to help you get started!" msgstr "" +msgid "" +"Give a helpful description of a problem you're facing, or a feature you'd " +"like to request" +msgstr "" + msgid "" "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? " "Let us know!" @@ -902,19 +895,43 @@ msgstr "" msgid "Thank you for helping improve the KIPR Simulator!" msgstr "" +msgid "Open World" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Description: " +msgstr "" + +msgid "Author: " +msgstr "" + +msgid "Me" +msgstr "" + +msgid "Select a scene to see more details" +msgstr "" + msgid "Description" msgstr "" -msgid "Delete %1?" +msgid "New World" msgstr "" -msgid "Are you sure you want to delete %1?" +msgid "Create" +msgstr "" + +msgid "Delete %s?" +msgstr "" + +msgid "Are you sure you want to delete %s?" msgstr "" msgid "Copy World" msgstr "" -msgid "Error %1" +msgid "Error %d" msgstr "" msgid "Closing this dialog will take you back to the last well-known state." @@ -932,65 +949,109 @@ msgstr "" msgid "Start" msgstr "" -msgid "RGB" +msgid "Welcome to the KIPR Simulator!\n" msgstr "" -msgid "Challenge" +msgid "Compiling...\n" msgstr "" -msgid "Stop" +msgid "Compilation succeeded with warnings.\n" msgstr "" -msgid "Run" +msgid "Compilation succeeded.\n" msgstr "" -msgid "and External Contributors" +msgid "Compilation failed.\n" msgstr "" -msgid "Visit our" +msgid "Something went wrong during compilation.\n" msgstr "" -msgid "Can %s" +msgid "Compilation succeeded with warnings\n" msgstr "" -msgid "Item(s) (%d)" +msgid "Compilation succeeded\n" msgstr "" -msgid "Script(s) (%d)" +msgid "Modules" msgstr "" -msgid "Version %s (%s)" +msgid "Functions" msgstr "" -msgid "Delete %s?" +msgid "Structures" msgstr "" -msgid "Are you sure you want to delete %s?" +msgid "Enumerations" msgstr "" -msgid "Error %d" +msgid "Files" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Detailed Description" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Return Value" +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Challenge" +msgstr "" + +msgid "Stop" +msgstr "" + +msgid "Run" +msgstr "" + +msgid "and External Contributors" +msgstr "" + +msgid "Visit our" msgstr "" +msgctxt "Volume (box) in the 3D scene" msgid "Volume" msgstr "" +msgctxt "Red, Green, Blue" msgid "RGB" msgstr "" +msgctxt "Computer text command line (e.g., DOS)" msgid "Console" msgstr "" +msgctxt "A predefined task for the user to complete" msgid "Challenge" msgstr "" +msgctxt "Terminate program execution" msgid "Stop" msgstr "" +msgctxt "Begin program execution" msgid "Run" msgstr "" +msgctxt "Part of copyright notice, after KIPR is listed" msgid "and External Contributors" msgstr "" +msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" diff --git a/i18n/po/ja-JP.mo b/i18n/po/ja-JP.mo deleted file mode 100644 index 6c0964c1bacfde9dcacb6f81db97c047bf6bce65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1200 zcmZ{hOHUL*5XalMZlW0ve+DK==lJ0%J7Iu;AUh{~nfyiB7im*Hu&Xud1H!n^txcJnLZFU^Z+$ zYzStaAF#c!pRfb4Ez1aL2Q%Pm@LPo%Ou_#JZUldW8^G1e3Hb_c22X-h;018c3PL8q zTcGKEa^;-fd2lQIi{K`(72FPXfRH3>VCI2KRwXAw)>a7VWF|-^no0PO@RSs;Pgy~U ztY~U>xpIU@MUG~L&8uj=WZ6qx`Bjv8HoaUBiu+`tswK}=o=fU;&li%4f@&@(h)GUa zF2}Qq+qC{Fm8ca>)Dw=+|5xnOdY)%jICY&%oJ!7It3^oHu4wzz@qERZZAME{92+_F zZ>#AM^yjV2Y*4kdJe`@(NyhSo=QB;OSeBDIDH^ewRcl-4xb#s{LsNC9tke98V?66HQyih=%vV+hyZaCp zGKtJdS{cromiRTakzG7impV~=;mXjF&q zP!qR*if{Jlpi@V$OfV|y=!uSQ>F~J@KS4VF@^-dwQipfrt_M1}VQo9asPWMcrBhk^zB;|eb|2( void; onChallengeCompletionSceneDiffChange: (sceneDiff: OuterObjectPatch) => void; @@ -353,7 +356,7 @@ class Root extends React.Component { layout: Layout.Side, modal: Modal.NONE, simulatorState: SimulatorState.STOPPED, - console: StyledText.text({ text: 'Welcome to the KIPR Simulator!\n', style: STDOUT_STYLE(DARK) }), + console: StyledText.text({ text: LocalizedString.lookup(tr('Welcome to the KIPR Simulator!\n'), props.locale), style: STDOUT_STYLE(DARK) }), theme: DARK, messages: [], settings: DEFAULT_SETTINGS, @@ -646,7 +649,8 @@ class Root extends React.Component { }; private onRunClick_ = () => { - const { state } = this; + const { props, state } = this; + const { locale } = props; const { console, theme } = state; const language = this.currentLanguage; @@ -656,7 +660,7 @@ class Root extends React.Component { case 'c': case 'cpp': { let nextConsole: StyledText = StyledText.extend(console, StyledText.text({ - text: `Compiling...\n`, + text: LocalizedString.lookup(tr('Compiling...\n'), locale), style: STDOUT_STYLE(this.state.theme) })); @@ -683,7 +687,9 @@ class Root extends React.Component { // Show success in console and start running the program const haveWarnings = hasWarnings(messages); nextConsole = StyledText.extend(nextConsole, StyledText.text({ - text: `Compilation succeeded${haveWarnings ? ' with warnings' : ''}!\n`, + text: haveWarnings + ? LocalizedString.lookup(tr('Compilation succeeded with warnings\n'), locale) + : LocalizedString.lookup(tr('Compilation succeeded\n'), locale), style: STDOUT_STYLE(this.state.theme) })); @@ -702,7 +708,7 @@ class Root extends React.Component { } nextConsole = StyledText.extend(nextConsole, StyledText.text({ - text: `Compilation failed.\n`, + text: LocalizedString.lookup(tr('Compilation failed.\n'), locale), style: STDERR_STYLE(this.state.theme) })); } @@ -716,7 +722,7 @@ class Root extends React.Component { .catch((e: unknown) => { window.console.error(e); nextConsole = StyledText.extend(nextConsole, StyledText.text({ - text: 'Something went wrong during compilation.\n', + text: LocalizedString.lookup(tr('Something went wrong during compilation.\n'), locale), style: STDERR_STYLE(this.state.theme) })); @@ -1026,6 +1032,7 @@ export default connect((state: ReduxState, { match: { params: { challengeId } } scene: Dict.unique(builder.scenes), challenge: Dict.unique(builder.challenges), challengeCompletion: Dict.unique(builder.challengeCompletions), + locale: state.i18n.locale, }; }, (dispatch, { match: { params: { challengeId } } }: RootPublicProps) => ({ onChallengeCompletionCreate: (challengeCompletion: ChallengeCompletion) => { diff --git a/src/components/Feedback/index.tsx b/src/components/Feedback/index.tsx index 08e6cb25..ad1deee9 100644 --- a/src/components/Feedback/index.tsx +++ b/src/components/Feedback/index.tsx @@ -93,10 +93,10 @@ class FeedbackDialog extends React.PureComponent { }; private createFeedbackTextArea = (getValue: (feedback: Feedback) => string, getUpdatedFeedback: (newValue: string) => Partial) => { - const { theme, feedback: currentFeedback, onFeedbackChange } = this.props; + const { theme, feedback: currentFeedback, onFeedbackChange, locale } = this.props; return ( - { onFeedbackChange(getUpdatedFeedback(event.target.value)); diff --git a/src/components/Info/Info.tsx b/src/components/Info/Info.tsx index addfd513..f88a2ecc 100644 --- a/src/components/Info/Info.tsx +++ b/src/components/Info/Info.tsx @@ -85,21 +85,7 @@ const SIMULATION_NAME = StyledText.text({ text: 'Simulation', }); -const SERVOS_NAME = StyledText.text({ - text: 'Servos', -}); - -const MOTOR_VELOCITIES_NAME = StyledText.text({ - text: 'Motor Velocities', -}); -const MOTOR_POSITIONS_NAME = StyledText.compose({ - items: [ - StyledText.text({ - text: 'Motor Positions', - }), - ] -}); const ResetIcon = styled(Fa, ({ theme }: ThemeProps) => ({ marginLeft: `${theme.itemPadding * 2}px`, @@ -216,6 +202,22 @@ class Info extends React.PureComponent { const digitalName = StyledText.text({ text: LocalizedString.lookup(tr('Digital Sensors'), locale), }); + + const servosName = StyledText.text({ + text: LocalizedString.lookup(tr('Servos'), locale), + }); + + const motorVelocitiesName = StyledText.text({ + text: LocalizedString.lookup(tr('Motor Velocities'), locale), + }); + + const motorPositionsName = StyledText.compose({ + items: [ + StyledText.text({ + text: LocalizedString.lookup(tr('Motor Positions'), locale), + }), + ] + }); return ( @@ -230,10 +232,11 @@ class Info extends React.PureComponent { theme={theme} origin={node.startingOrigin} onOriginChange={props.onOriginChange} + locale={locale} /> { {servos} { {motorVelocities} void; + locale: LocalizedString.Language; } type Props = LocationProps; @@ -105,7 +109,7 @@ export default class Location extends React.PureComponent { render() { const { props } = this; - const { theme, style, className, origin } = props; + const { theme, style, className, origin, locale } = props; if (!origin) return null; @@ -120,10 +124,10 @@ export default class Location extends React.PureComponent { return ( - - - - + + + + ); } diff --git a/src/components/Root.tsx b/src/components/Root.tsx index 624a4d42..90103183 100644 --- a/src/components/Root.tsx +++ b/src/components/Root.tsx @@ -71,6 +71,8 @@ import DbError from '../db/Error'; import { applyObjectPatch, applyPatch, createObjectPatch, createPatch, ObjectPatch, OuterObjectPatch } from 'symmetry'; import DocumentationLocation from '../state/State/Documentation/DocumentationLocation'; +import tr from '@i18n'; + namespace Modal { export enum Type { Settings, @@ -184,6 +186,7 @@ interface RootPrivateProps { scene: AsyncScene; challenge?: AsyncChallenge; challengeCompletion?: AsyncChallengeCompletion; + locale: LocalizedString.Language; onNodeAdd: (id: string, node: Node) => void; onNodeRemove: (id: string) => void; @@ -286,7 +289,7 @@ class Root extends React.Component { }, modal: Modal.NONE, simulatorState: SimulatorState.STOPPED, - console: StyledText.text({ text: 'Welcome to the KIPR Simulator!\n', style: STDOUT_STYLE(DARK) }), + console: StyledText.text({ text: LocalizedString.lookup(tr('Welcome to the KIPR Simulator!\n'), props.locale), style: STDOUT_STYLE(DARK) }), theme: DARK, messages: [], settings: DEFAULT_SETTINGS, @@ -414,7 +417,8 @@ class Root extends React.Component { }; private onRunClick_ = () => { - const { state } = this; + const { props, state } = this; + const { locale } = props; const { activeLanguage, code, console, theme } = state; const activeCode = code[activeLanguage]; @@ -423,7 +427,7 @@ class Root extends React.Component { case 'c': case 'cpp': { let nextConsole: StyledText = StyledText.extend(console, StyledText.text({ - text: `Compiling...\n`, + text: LocalizedString.lookup(tr('Compiling...\n'), locale), style: STDOUT_STYLE(this.state.theme) })); @@ -450,7 +454,9 @@ class Root extends React.Component { // Show success in console and start running the program const haveWarnings = hasWarnings(messages); nextConsole = StyledText.extend(nextConsole, StyledText.text({ - text: `Compilation succeeded${haveWarnings ? ' with warnings' : ''}!\n`, + text: haveWarnings + ? LocalizedString.lookup(tr('Compilation succeeded with warnings.\n'), locale) + : LocalizedString.lookup(tr('Compilation succeeded.\n'), locale), style: STDOUT_STYLE(this.state.theme) })); @@ -469,7 +475,7 @@ class Root extends React.Component { } nextConsole = StyledText.extend(nextConsole, StyledText.text({ - text: `Compilation failed.\n`, + text: LocalizedString.lookup(tr('Compilation failed.\n'), locale), style: STDERR_STYLE(this.state.theme) })); } @@ -483,7 +489,7 @@ class Root extends React.Component { .catch((e: unknown) => { window.console.error(e); nextConsole = StyledText.extend(nextConsole, StyledText.text({ - text: 'Something went wrong during compilation.\n', + text: LocalizedString.lookup(tr('Something went wrong during compilation.\n'), locale), style: STDERR_STYLE(this.state.theme) })); @@ -890,6 +896,7 @@ export default connect((state: ReduxState, { match: { params: { sceneId, challen scene: Dict.unique(builder.scenes), challenge: Dict.unique(builder.challenges), challengeCompletion: Dict.unique(builder.challengeCompletions), + locale: state.i18n.locale, }; }, (dispatch, { match: { params: { sceneId } } }: RootPublicProps) => ({ onNodeAdd: (nodeId: string, node: Node) => dispatch(ScenesAction.setNode({ sceneId, nodeId, node })), diff --git a/src/components/SettingsDialog.tsx b/src/components/SettingsDialog.tsx index d43f6b54..cfb10753 100644 --- a/src/components/SettingsDialog.tsx +++ b/src/components/SettingsDialog.tsx @@ -92,7 +92,7 @@ interface SectionProps { const LOCALE_OPTIONS: ComboBox.Option[] = (() => { const ret: ComboBox.Option[] = []; - for (const locale of [LocalizedString.EN_US, LocalizedString.JA_JP]) { + for (const locale of [LocalizedString.EN_US]) { ret.push(ComboBox.option(LocalizedString.NATIVE_LOCALE_NAMES[locale], locale)); } return ret; diff --git a/src/components/SimMenu.tsx b/src/components/SimMenu.tsx index fa619681..cac9f815 100644 --- a/src/components/SimMenu.tsx +++ b/src/components/SimMenu.tsx @@ -287,12 +287,14 @@ class SimMenu extends React.PureComponent { {runOrStopItem} - Reset World + + {LocalizedString.lookup(tr('Reset World'), locale)} + - Layout + {LocalizedString.lookup(tr('Layout'), locale)} {subMenu.type === SubMenu.Type.LayoutPicker ? ( { - World + {LocalizedString.lookup(tr('World'), locale)} {subMenu.type === SubMenu.Type.SceneMenu ? ( { const hasReset = workingScene.nodes[nodeId].startingOrigin !== undefined; itemList.push(EditableList.Item.standard({ component: Item, - props: { name: node.name[LocalizedString.EN_US], theme }, + props: { name: LocalizedString.lookup(node.name, locale), theme }, onReset: hasReset && nodeReset ? this.onNodeResetClick_(nodeId) : undefined, onSettings: node.editable && nodeSettings ? this.onItemSettingsClick_(nodeId) : undefined, onVisibilityChange: nodeVisiblity ? this.onItemVisibilityChange_(nodeId) : undefined, diff --git a/src/components/documentation/DocumentationWindow.tsx b/src/components/documentation/DocumentationWindow.tsx index 44182b22..e15c12a6 100644 --- a/src/components/documentation/DocumentationWindow.tsx +++ b/src/components/documentation/DocumentationWindow.tsx @@ -24,6 +24,9 @@ import { FunctionName } from './common'; import ModuleDocumentation from './ModuleDocumentation'; import StructureDocumentation from './StructureDocumentation'; +import tr from '@i18n'; +import LocalizedString from 'util/LocalizedString'; + namespace DragState { export interface None { type: 'none'; @@ -49,6 +52,7 @@ export interface DocumentationWindowPublicProps extends ThemeProps { interface DocumentationWindowPrivateProps { documentationState: DocumentationState; + locale: LocalizedString.Language; onDocumentationSizeChange: (size: Size) => void; onDocumentationPop: () => void; @@ -172,6 +176,7 @@ class DocumentationWindow extends React.PureComponent { render() { const { props, state } = this; const { + locale, theme, documentationState, onDocumentationPop, @@ -217,7 +222,7 @@ class DocumentationWindow extends React.PureComponent { return ( { theme={theme} onDocumentationPush={onDocumentationPush} documentation={documentation} + locale={locale} /> )} {locationStackTop && locationStackTop.type === DocumentationLocation.Type.Function && ( @@ -242,6 +248,7 @@ class DocumentationWindow extends React.PureComponent { func={documentation.functions[locationStackTop.id]} onDocumentationPush={onDocumentationPush} theme={theme} + locale={locale} /> )} {locationStackTop && locationStackTop.type === DocumentationLocation.Type.File && ( @@ -251,6 +258,7 @@ class DocumentationWindow extends React.PureComponent { documentation={Documentation.subset(documentation, documentation.files[locationStackTop.id])} onDocumentationPush={onDocumentationPush} theme={theme} + locale={locale} /> )} {locationStackTop && locationStackTop.type === DocumentationLocation.Type.Module && ( @@ -260,6 +268,7 @@ class DocumentationWindow extends React.PureComponent { documentation={Documentation.subset(documentation, documentation.modules[locationStackTop.id])} onDocumentationPush={onDocumentationPush} theme={theme} + locale={locale} /> )} {locationStackTop && locationStackTop.type === DocumentationLocation.Type.Structure && ( @@ -268,6 +277,7 @@ class DocumentationWindow extends React.PureComponent { structure={documentation.structures[locationStackTop.id]} onDocumentationPush={onDocumentationPush} theme={theme} + locale={locale} /> )} @@ -318,7 +328,8 @@ class DocumentationWindow extends React.PureComponent { } export default connect((state: ReduxState) => ({ - documentationState: state.documentation + documentationState: state.documentation, + locale: state.i18n.locale, }), dispatch => ({ onDocumentationSizeChange: (size: Size) => dispatch(DocumentationAction.setSize({ size })), onDocumentationPop: () => dispatch(DocumentationAction.POP), diff --git a/src/components/documentation/FileDocumentation.tsx b/src/components/documentation/FileDocumentation.tsx index 2cca57f2..ca987631 100644 --- a/src/components/documentation/FileDocumentation.tsx +++ b/src/components/documentation/FileDocumentation.tsx @@ -9,10 +9,14 @@ import Section from '../Section'; import { ThemeProps } from '../theme'; import FunctionBrief from './FunctionBrief'; +import tr from '@i18n'; +import LocalizedString from 'util/LocalizedString'; + export interface FileDocumentationProps extends StyleProps, ThemeProps { language: 'c' | 'python'; file: FileDocumentationModel; documentation: Documentation; + locale: LocalizedString.Language; onDocumentationPush: (location: DocumentationLocation) => void; } @@ -30,11 +34,12 @@ const FileDocumentation = ({ onDocumentationPush, style, className, - theme + theme, + locale }: Props) => { return ( -
+
{file.functions.map(id => ( void; } @@ -42,7 +46,7 @@ const ParameterPrototype = styled('span', { fontSize: '1.2em', }); -const FunctionDocumentation = ({ language, func, style, className, theme }: Props) => { +const FunctionDocumentation = ({ language, func, style, className, theme, locale }: Props) => { return ( @@ -52,12 +56,12 @@ const FunctionDocumentation = ({ language, func, style, className, theme }: Prop )} {func.detailed_description && func.detailed_description.length > 0 && ( -
+
{func.detailed_description}
)} {func.parameters.length > 0 && ( -
+
{language === 'c' ? ( func.parameters.map((parameter, index) => ( @@ -90,7 +94,7 @@ const FunctionDocumentation = ({ language, func, style, className, theme }: Prop
)} {func.return_type !== 'void' && ( -
+
{language === 'c' ? func.return_type : toPythonType(func.return_type)} diff --git a/src/components/documentation/ModuleDocumentation.tsx b/src/components/documentation/ModuleDocumentation.tsx index d9048e62..2a129885 100644 --- a/src/components/documentation/ModuleDocumentation.tsx +++ b/src/components/documentation/ModuleDocumentation.tsx @@ -10,10 +10,14 @@ import Section from '../Section'; import { ThemeProps } from '../theme'; import FunctionBrief from './FunctionBrief'; +import tr from '@i18n'; +import LocalizedString from 'util/LocalizedString'; + export interface ModuleDocumentationProps extends StyleProps, ThemeProps { language: 'c' | 'python'; module: ModuleDocumentationModel; documentation: Documentation; + locale: LocalizedString.Language; onDocumentationPush: (location: DocumentationLocation) => void; } @@ -31,7 +35,8 @@ const ModuleDocumentation = ({ onDocumentationPush, style, className, - theme + theme, + locale }: Props) => { const functions: [string, FunctionDocumentation][] = module.functions.map(f => [f, documentation.functions[f]]); @@ -40,7 +45,7 @@ const ModuleDocumentation = ({ return ( -
+
{functions.map(([id, f]) => ( void; } @@ -88,7 +92,7 @@ class RootDocumentation extends React.PureComponent { render() { const { props, state } = this; - const { theme, documentation, language } = props; + const { theme, documentation, language, locale } = props; const { query } = state; const sections: JSX.Element[] = []; @@ -101,7 +105,7 @@ class RootDocumentation extends React.PureComponent { if (modules.length > 0) { sections.push(( -
+
{modules.map(([id, module]) => ( { if (functions.length > 0) { sections.push(( -
+
{functions.map(([id, func]) => ( { if (structures.length > 0) { sections.push(( -
+
{structures.map(([id, structure]) => ( { if (enumerations.length > 0) { sections.push(( -
+
{enumerations.map(([id, enumeration]) => ( { if (files.length > 0) { sections.push(( -
+
{files.map(([id, file]) => ( { type='text' onChange={this.onQueryChange_} value={query} - placeholder='Search...' + placeholder={LocalizedString.lookup(tr('Search...'), locale)} /> {sections} diff --git a/src/components/documentation/StructureDocumentation.tsx b/src/components/documentation/StructureDocumentation.tsx index 14df697a..dff349b7 100644 --- a/src/components/documentation/StructureDocumentation.tsx +++ b/src/components/documentation/StructureDocumentation.tsx @@ -12,9 +12,13 @@ import FunctionBrief from './FunctionBrief'; import StructureBrief from './StructureBrief'; import { toPythonType } from './util'; +import tr from '@i18n'; +import LocalizedString from 'util/LocalizedString'; + export interface StructureDocumentationProps extends StyleProps, ThemeProps { language: 'c' | 'python'; structure: StructureDocumentationModel; + locale: LocalizedString.Language; onDocumentationPush: (location: DocumentationLocation) => void; } @@ -50,7 +54,8 @@ const StructureDocumentation = ({ onDocumentationPush, style, className, - theme + theme, + locale }: Props) => { return ( @@ -61,12 +66,12 @@ const StructureDocumentation = ({ )} {structure.detailed_description && structure.detailed_description.length > 0 && ( -
+
{structure.detailed_description}
)} {structure.members.length > 0 && ( -
+
{language === 'c' ? ( structure.members.map((member, index) => ( diff --git a/src/util/LocalizedString.ts b/src/util/LocalizedString.ts index 0a55f7e7..21c0c1ba 100644 --- a/src/util/LocalizedString.ts +++ b/src/util/LocalizedString.ts @@ -107,7 +107,7 @@ namespace LocalizedString { typeof UR_PK ); - export const FALLBACKS: { [locale: string]: string[] } = { + export const FALLBACKS: { [locale in Language]: Language[] } = { [EN_US]: [], [EN_UK]: [EN_US], [ZH_CN]: [EN_US], From 57a2547d780534ab5a742c5891e65a083405d807 Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Mon, 6 Feb 2023 14:59:15 -0500 Subject: [PATCH 12/18] Remove i18n.json --- i18n/i18n.json | 1050 ------------------------------------------------ 1 file changed, 1050 deletions(-) delete mode 100644 i18n/i18n.json diff --git a/i18n/i18n.json b/i18n/i18n.json deleted file mode 100644 index fe6d2e9c..00000000 --- a/i18n/i18n.json +++ /dev/null @@ -1,1050 +0,0 @@ -{ - "": { - "Robot": { - "en-US": "Robot" - }, - "Base Scene - Surface A": { - "en-US": "Base Scene - Surface A" - }, - "A base scene using Surface A. Intended to be augmented to create full JBC scenes": { - "en-US": "A base scene using Surface A. Intended to be augmented to create full JBC scenes" - }, - "JBC Surface A": { - "en-US": "JBC Surface A" - }, - "Ground": { - "en-US": "Ground" - }, - "Light": { - "en-US": "Light" - }, - "Base Scene - Surface B": { - "en-US": "Base Scene - Surface B" - }, - "A base scene using Surface B. Intended to be augmented to create full JBC scenes": { - "en-US": "A base scene using Surface B. Intended to be augmented to create full JBC scenes" - }, - "JBC Surface B": { - "en-US": "JBC Surface B" - }, - "Can %s": { - "en-US": "Can %s" - }, - "JBC Sandbox A": { - "en-US": "JBC Sandbox A" - }, - "Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by default.": { - "en-US": "Junior Botball Challenge Sandbox on Mat A. All cans 1-12 are available by default." - }, - "Paper Ream 1": { - "en-US": "Paper Ream 1" - }, - "Paper Ream 2": { - "en-US": "Paper Ream 2" - }, - "JBC Sandbox B": { - "en-US": "JBC Sandbox B" - }, - "Junior Botball Challenge Sandbox on Mat B.": { - "en-US": "Junior Botball Challenge Sandbox on Mat B." - }, - "JBC 1": { - "en-US": "JBC 1" - }, - "Junior Botball Challenge 1: Tag, You're It!": { - "en-US": "Junior Botball Challenge 1: Tag, You're It!" - }, - "JBC 2": { - "en-US": "JBC 2" - }, - "Junior Botball Challenge 2: Ring Around the Can": { - "en-US": "Junior Botball Challenge 2: Ring Around the Can" - }, - "JBC 2B": { - "en-US": "JBC 2B" - }, - "Junior Botball Challenge 2B: Ring Around the Can, Sr.": { - "en-US": "Junior Botball Challenge 2B: Ring Around the Can, Sr." - }, - "JBC 2C": { - "en-US": "JBC 2C" - }, - "Junior Botball Challenge 2C: Back It Up": { - "en-US": "Junior Botball Challenge 2C: Back It Up" - }, - "JBC 2D": { - "en-US": "JBC 2D" - }, - "Junior Botball Challenge 2D: Ring Around the Can and Back It Up": { - "en-US": "Junior Botball Challenge 2D: Ring Around the Can and Back It Up" - }, - "JBC 3": { - "en-US": "JBC 3" - }, - "Junior Botball Challenge 3: Precision Parking": { - "en-US": "Junior Botball Challenge 3: Precision Parking" - }, - "JBC 3B": { - "en-US": "JBC 3B" - }, - "Junior Botball Challenge 3B: Parallel Parking": { - "en-US": "Junior Botball Challenge 3B: Parallel Parking" - }, - "JBC 3C": { - "en-US": "JBC 3C" - }, - "Junior Botball Challenge 3C: Quick Get Away!": { - "en-US": "Junior Botball Challenge 3C: Quick Get Away!" - }, - "JBC 4": { - "en-US": "JBC 4" - }, - "Junior Botball Challenge 4: Figure Eight": { - "en-US": "Junior Botball Challenge 4: Figure Eight" - }, - "JBC 4B": { - "en-US": "JBC 4B" - }, - "Junior Botball Challenge 4B: Barrel Racing": { - "en-US": "Junior Botball Challenge 4B: Barrel Racing" - }, - "JBC 5": { - "en-US": "JBC 5" - }, - "Junior Botball Challenge 5: Dance Party": { - "en-US": "Junior Botball Challenge 5: Dance Party" - }, - "JBC 5B": { - "en-US": "JBC 5B" - }, - "Junior Botball Challenge 5B: Line Dance": { - "en-US": "Junior Botball Challenge 5B: Line Dance" - }, - "JBC 5C": { - "en-US": "JBC 5C" - }, - "Junior Botball Challenge 5C: Synchronized Dancing": { - "en-US": "Junior Botball Challenge 5C: Synchronized Dancing" - }, - "JBC 6": { - "en-US": "JBC 6" - }, - "Junior Botball Challenge 6: Load 'Em Up": { - "en-US": "Junior Botball Challenge 6: Load 'Em Up" - }, - "JBC 6B": { - "en-US": "JBC 6B" - }, - "Junior Botball Challenge 6B: Pick 'Em Up": { - "en-US": "Junior Botball Challenge 6B: Pick 'Em Up" - }, - "JBC 6C": { - "en-US": "JBC 6C" - }, - "Junior Botball Challenge 6C: Empty the Garage": { - "en-US": "Junior Botball Challenge 6C: Empty the Garage" - }, - "Circle 2": { - "en-US": "Circle 2" - }, - "Circle 9": { - "en-US": "Circle 9" - }, - "Circle 10": { - "en-US": "Circle 10" - }, - "Mat Surface": { - "en-US": "Mat Surface" - }, - "JBC 7": { - "en-US": "JBC 7" - }, - "Junior Botball Challenge 7: Bulldozer Mania": { - "en-US": "Junior Botball Challenge 7: Bulldozer Mania" - }, - "JBC 7B": { - "en-US": "JBC 7B" - }, - "Junior Botball Challenge 7B: Cover Your Bases": { - "en-US": "Junior Botball Challenge 7B: Cover Your Bases" - }, - "JBC 8": { - "en-US": "JBC 8" - }, - "Junior Botball Challenge 8: Serpentine": { - "en-US": "Junior Botball Challenge 8: Serpentine" - }, - "JBC 8B": { - "en-US": "JBC 8B" - }, - "Junior Botball Challenge 8B: Serpentine Jr.": { - "en-US": "Junior Botball Challenge 8B: Serpentine Jr." - }, - "JBC 9": { - "en-US": "JBC 9" - }, - "Junior Botball Challenge 9: Add It Up": { - "en-US": "Junior Botball Challenge 9: Add It Up" - }, - "JBC 9B": { - "en-US": "JBC 9B" - }, - "Junior Botball Challenge 9B: Balancing Act": { - "en-US": "Junior Botball Challenge 9B: Balancing Act" - }, - "JBC 10": { - "en-US": "JBC 10" - }, - "Junior Botball Challenge 10: Solo Joust": { - "en-US": "Junior Botball Challenge 10: Solo Joust" - }, - "JBC 10B": { - "en-US": "JBC 10B" - }, - "Junior Botball Challenge 10: Solo Joust Jr.": { - "en-US": "Junior Botball Challenge 10: Solo Joust Jr." - }, - "JBC 12": { - "en-US": "JBC 12" - }, - "Junior Botball Challenge 12: Unload 'Em": { - "en-US": "Junior Botball Challenge 12: Unload 'Em" - }, - "JBC 13": { - "en-US": "JBC 13" - }, - "Junior Botball Challenge 13: Clean the Mat": { - "en-US": "Junior Botball Challenge 13: Clean the Mat" - }, - "JBC 15B": { - "en-US": "JBC 15B" - }, - "Junior Botball Challenge 15B: Bump Bump": { - "en-US": "Junior Botball Challenge 15B: Bump Bump" - }, - "JBC 17": { - "en-US": "JBC 17" - }, - "Junior Botball Challenge 17: Walk the Line": { - "en-US": "Junior Botball Challenge 17: Walk the Line" - }, - "JBC 17B": { - "en-US": "JBC 17B" - }, - "Junior Botball Challenge 17: Walk the Line II": { - "en-US": "Junior Botball Challenge 17: Walk the Line II" - }, - "JBC 19": { - "en-US": "JBC 19" - }, - "Junior Botball Challenge 19: Mountain Rescue": { - "en-US": "Junior Botball Challenge 19: Mountain Rescue" - }, - "Paper Ream": { - "en-US": "Paper Ream" - }, - "JBC 20": { - "en-US": "JBC 20" - }, - "Junior Botball Challenge 20: Rescue the Cans": { - "en-US": "Junior Botball Challenge 20: Rescue the Cans" - }, - "JBC 21": { - "en-US": "JBC 21" - }, - "Junior Botball Challenge 21: Foot Tall": { - "en-US": "Junior Botball Challenge 21: Foot Tall" - }, - "JBC 22": { - "en-US": "JBC 22" - }, - "Junior Botball Challenge 22: Stackerz": { - "en-US": "Junior Botball Challenge 22: Stackerz" - }, - "Script Playground": { - "en-US": "Script Playground" - }, - "Script tests": { - "en-US": "Script tests" - }, - "Demobot": { - "en-US": "Demobot" - }, - "JBC Challenge 6C": { - "en-US": "JBC Challenge 6C" - }, - "Can A Lifted": { - "en-US": "Can A Lifted" - }, - "Can A picked up": { - "en-US": "Can A picked up" - }, - "Can B Lifted": { - "en-US": "Can B Lifted" - }, - "Can B picked up": { - "en-US": "Can B picked up" - }, - "Can C Lifted": { - "en-US": "Can C Lifted" - }, - "Can C picked up": { - "en-US": "Can C picked up" - }, - "Can A Placed": { - "en-US": "Can A Placed" - }, - "Can A placed on circle 2": { - "en-US": "Can A placed on circle 2" - }, - "Can B Placed": { - "en-US": "Can B Placed" - }, - "Can A placed on circle 9": { - "en-US": "Can A placed on circle 9" - }, - "Can C Placed": { - "en-US": "Can C Placed" - }, - "Can A placed on circle 10": { - "en-US": "Can A placed on circle 10" - }, - "Can A Upright": { - "en-US": "Can A Upright" - }, - "Can A upright on circle 2": { - "en-US": "Can A upright on circle 2" - }, - "Can B Upright": { - "en-US": "Can B Upright" - }, - "Can B upright on circle 9": { - "en-US": "Can B upright on circle 9" - }, - "Can C Upright": { - "en-US": "Can C Upright" - }, - "Can C upright on circle 10": { - "en-US": "Can C upright on circle 10" - }, - "Loading...": { - "en-US": "Loading..." - }, - "Logout": { - "en-US": "Logout" - }, - "Tutorials": { - "en-US": "Tutorials" - }, - "Learn how to get started with the simulator": { - "en-US": "Learn how to get started with the simulator" - }, - "3D Simulator": { - "en-US": "3D Simulator" - }, - "A simulator for the Botball demobot.": { - "en-US": "A simulator for the Botball demobot." - }, - "About": { - "en-US": "About" - }, - "KIPR is a 501(c) 3 organization started to make the long-term educational benefits of robotics accessible to students.": { - "en-US": "KIPR is a 501(c) 3 organization started to make the long-term educational benefits of robotics accessible to students." - }, - "Quick Start": { - "en-US": "Quick Start" - }, - "Navigating in 3D": { - "en-US": "Navigating in 3D" - }, - "Learn the controls for navigating in 3D in the simulator": { - "en-US": "Learn the controls for navigating in 3D in the simulator" - }, - "Robot Section": { - "en-US": "Robot Section" - }, - "How to use the robot section": { - "en-US": "How to use the robot section" - }, - "World Section": { - "en-US": "World Section" - }, - "Learn how to create and manipulate items and scene in the simulator": { - "en-US": "Learn how to create and manipulate items and scene in the simulator" - }, - "Indent": { - "en-US": "Indent" - }, - "Download": { - "en-US": "Download" - }, - "Reset": { - "en-US": "Reset" - }, - "Error(s)": { - "en-US": "Error(s)" - }, - "Warning(s)": { - "en-US": "Warning(s)" - }, - "grams": { - "en-US": "grams" - }, - "kilograms": { - "en-US": "kilograms" - }, - "pounds": { - "en-US": "pounds" - }, - "ounces": { - "en-US": "ounces" - }, - "meters": { - "en-US": "meters" - }, - "centimeters": { - "en-US": "centimeters" - }, - "feet": { - "en-US": "feet" - }, - "inches": { - "en-US": "inches" - }, - "radians": { - "en-US": "radians" - }, - "degrees": { - "en-US": "degrees" - }, - "Can": { - "en-US": "Can" - }, - "Box": { - "en-US": "Box" - }, - "Sphere": { - "en-US": "Sphere" - }, - "Cylinder": { - "en-US": "Cylinder" - }, - "Cone": { - "en-US": "Cone" - }, - "Plane": { - "en-US": "Plane" - }, - "File": { - "en-US": "File" - }, - "Euler": { - "en-US": "Euler" - }, - "Axis Angle": { - "en-US": "Axis Angle" - }, - "Empty": { - "en-US": "Empty" - }, - "Standard Object": { - "en-US": "Standard Object" - }, - "Custom Object": { - "en-US": "Custom Object" - }, - "Point Light": { - "en-US": "Point Light" - }, - "Unset": { - "en-US": "Unset" - }, - "Basic": { - "en-US": "Basic" - }, - "Texture": { - "en-US": "Texture" - }, - "Value": { - "en-US": "Value" - }, - "General": { - "en-US": "General" - }, - "Name": { - "en-US": "Name" - }, - "Type": { - "en-US": "Type" - }, - "Geometry": { - "en-US": "Geometry" - }, - "Item": { - "en-US": "Item" - }, - "Box Options": { - "en-US": "Box Options" - }, - "Size X": { - "en-US": "Size X" - }, - "Size Y": { - "en-US": "Size Y" - }, - "Size Z": { - "en-US": "Size Z" - }, - "Sphere Options": { - "en-US": "Sphere Options" - }, - "Radius": { - "en-US": "Radius" - }, - "Cylinder Options": { - "en-US": "Cylinder Options" - }, - "Height": { - "en-US": "Height" - }, - "Plane Options": { - "en-US": "Plane Options" - }, - "File Options": { - "en-US": "File Options" - }, - "URI": { - "en-US": "URI" - }, - "Material": { - "en-US": "Material" - }, - "Color Type": { - "en-US": "Color Type" - }, - "Color Red": { - "en-US": "Color Red" - }, - "Color Green": { - "en-US": "Color Green" - }, - "Color Blue": { - "en-US": "Color Blue" - }, - "Color Texture URI": { - "en-US": "Color Texture URI" - }, - "Albedo Type": { - "en-US": "Albedo Type" - }, - "Albedo Red": { - "en-US": "Albedo Red" - }, - "Albedo Green": { - "en-US": "Albedo Green" - }, - "Albedo Blue": { - "en-US": "Albedo Blue" - }, - "Albedo Texture URI": { - "en-US": "Albedo Texture URI" - }, - "Reflection Type": { - "en-US": "Reflection Type" - }, - "Reflection Red": { - "en-US": "Reflection Red" - }, - "Reflection Green": { - "en-US": "Reflection Green" - }, - "Reflection Blue": { - "en-US": "Reflection Blue" - }, - "Reflection Texture URI": { - "en-US": "Reflection Texture URI" - }, - "Emissive Type": { - "en-US": "Emissive Type" - }, - "Emissive Red": { - "en-US": "Emissive Red" - }, - "Emissive Green": { - "en-US": "Emissive Green" - }, - "Emissive Blue": { - "en-US": "Emissive Blue" - }, - "Emissive Texture URI": { - "en-US": "Emissive Texture URI" - }, - "Ambient Type": { - "en-US": "Ambient Type" - }, - "Ambient Red": { - "en-US": "Ambient Red" - }, - "Ambient Green": { - "en-US": "Ambient Green" - }, - "Ambient Blue": { - "en-US": "Ambient Blue" - }, - "Ambient Texture URI": { - "en-US": "Ambient Texture URI" - }, - "Metalness Type": { - "en-US": "Metalness Type" - }, - "Metalness": { - "en-US": "Metalness" - }, - "Metalness Texture URI": { - "en-US": "Metalness Texture URI" - }, - "Position": { - "en-US": "Position" - }, - "X": { - "en-US": "X" - }, - "Y": { - "en-US": "Y" - }, - "Z": { - "en-US": "Z" - }, - "Orientation": { - "en-US": "Orientation" - }, - "Order": { - "en-US": "Order" - }, - "Angle": { - "en-US": "Angle" - }, - "Scale": { - "en-US": "Scale" - }, - "Physics": { - "en-US": "Physics" - }, - "Mass": { - "en-US": "Mass" - }, - "Friction": { - "en-US": "Friction" - }, - "Unnamed Object": { - "en-US": "Unnamed Object" - }, - "Add Item": { - "en-US": "Add Item" - }, - "Accept": { - "en-US": "Accept" - }, - "Settings": { - "en-US": "Settings" - }, - "Add Script": { - "en-US": "Add Script" - }, - "Select Scene": { - "en-US": "Select Scene" - }, - "Save Scene": { - "en-US": "Save Scene" - }, - "Copy Scene": { - "en-US": "Copy Scene" - }, - "Item(s) (%d)": { - "en-US": "Item(s) (%d)" - }, - "Script(s) (%d)": { - "en-US": "Script(s) (%d)" - }, - "Layouts": { - "en-US": "Layouts" - }, - "Overlay": { - "en-US": "Overlay" - }, - "Side": { - "en-US": "Side" - }, - "Options": { - "en-US": "Options" - }, - "Show All": { - "en-US": "Show All" - }, - "Hide All": { - "en-US": "Hide All" - }, - "Clear": { - "en-US": "Clear" - }, - "Rotation": { - "en-US": "Rotation" - }, - "Start Location": { - "en-US": "Start Location" - }, - "Motor Velocity Plot": { - "en-US": "Motor Velocity Plot" - }, - "Motor Position Plot": { - "en-US": "Motor Position Plot" - }, - "Analog Sensor Plot": { - "en-US": "Analog Sensor Plot" - }, - "Digital Sensor Plot": { - "en-US": "Digital Sensor Plot" - }, - "Analog Sensors": { - "en-US": "Analog Sensors" - }, - "Digital Sensors": { - "en-US": "Digital Sensors" - }, - "Servos": { - "en-US": "Servos" - }, - "Motor Velocities": { - "en-US": "Motor Velocities" - }, - "Motor Positions": { - "en-US": "Motor Positions" - }, - "This process is taking longer than expected...\nIf you have a poor internet connection, this can take some time": { - "en-US": "This process is taking longer than expected...\nIf you have a poor internet connection, this can take some time" - }, - "The simulator may have failed to load.\nPlease submit a feedback form to let us know!": { - "en-US": "The simulator may have failed to load.\nPlease submit a feedback form to let us know!" - }, - "Initializing Simulator...": { - "en-US": "Initializing Simulator..." - }, - "all of": { - "en-US": "all of" - }, - "one or more of": { - "en-US": "one or more of" - }, - "exactly one of": { - "en-US": "exactly one of" - }, - "once": { - "en-US": "once" - }, - "not": { - "en-US": "not" - }, - "Success": { - "en-US": "Success" - }, - "Failure": { - "en-US": "Failure" - }, - "Editor": { - "en-US": "Editor" - }, - "World": { - "en-US": "World" - }, - "Script Editor": { - "en-US": "Script Editor" - }, - "Console": { - "en-US": "Console" - }, - "Open": { - "en-US": "Open" - }, - "Save": { - "en-US": "Save" - }, - "Save As": { - "en-US": "Save As" - }, - "Delete": { - "en-US": "Delete" - }, - "Documentation": { - "en-US": "Documentation" - }, - "Feedback": { - "en-US": "Feedback" - }, - "Reset World": { - "en-US": "Reset World" - }, - "Layout": { - "en-US": "Layout" - }, - "User Interface": { - "en-US": "User Interface" - }, - "Simulation": { - "en-US": "Simulation" - }, - "Locale": { - "en-US": "Locale" - }, - "Switch languages": { - "en-US": "Switch languages" - }, - "Sensor noise": { - "en-US": "Sensor noise" - }, - "Controls whether sensor outputs are affected by random noise": { - "en-US": "Controls whether sensor outputs are affected by random noise" - }, - "Realistic sensors": { - "en-US": "Realistic sensors" - }, - "Controls whether sensors behave like real-world sensors instead of like ideal sensors. For example, real-world ET sensors are nonlinear": { - "en-US": "Controls whether sensors behave like real-world sensors instead of like ideal sensors. For example, real-world ET sensors are nonlinear" - }, - "Autocomplete": { - "en-US": "Autocomplete" - }, - "Controls autocompletion of code, brackets, and quotes": { - "en-US": "Controls autocompletion of code, brackets, and quotes" - }, - "Version %s (%s)": { - "en-US": "Version %s (%s)" - }, - "Copyright": { - "en-US": "Copyright" - }, - "This software is licensed under the terms of the": { - "en-US": "This software is licensed under the terms of the" - }, - "Thank you to the following contributors and testers:": { - "en-US": "Thank you to the following contributors and testers:" - }, - "Want to help improve the simulator and get your name listed here?": { - "en-US": "Want to help improve the simulator and get your name listed here?" - }, - "GitHub repository": { - "en-US": "GitHub repository" - }, - "We're happy to help you get started!": { - "en-US": "We're happy to help you get started!" - }, - "Give a helpful description of a problem you're facing, or a feature you'd like to request": { - "en-US": "Give a helpful description of a problem you're facing, or a feature you'd like to request" - }, - "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? Let us know!": { - "en-US": "Thanks for using the KIPR Simulator! Find a bug? Have a feature request? Let us know!" - }, - "How has your experience using the KIPR Simulator been?": { - "en-US": "How has your experience using the KIPR Simulator been?" - }, - "Email (optional): ": { - "en-US": "Email (optional): " - }, - "Include anonymous usage data to help KIPR developers": { - "en-US": "Include anonymous usage data to help KIPR developers" - }, - "Please try again,": { - "en-US": "Please try again," - }, - "open an issue on our github page": { - "en-US": "open an issue on our github page" - }, - ", or": { - "en-US": ", or" - }, - "email KIPR.": { - "en-US": "email KIPR." - }, - "Submit": { - "en-US": "Submit" - }, - "Feedback Success": { - "en-US": "Feedback Success" - }, - "Feedback successfully submitted!": { - "en-US": "Feedback successfully submitted!" - }, - "Thank you for helping improve the KIPR Simulator!": { - "en-US": "Thank you for helping improve the KIPR Simulator!" - }, - "Open World": { - "en-US": "Open World" - }, - "Unknown": { - "en-US": "Unknown" - }, - "Description: ": { - "en-US": "Description: " - }, - "Author: ": { - "en-US": "Author: " - }, - "Me": { - "en-US": "Me" - }, - "Select a scene to see more details": { - "en-US": "Select a scene to see more details" - }, - "Description": { - "en-US": "Description" - }, - "New World": { - "en-US": "New World" - }, - "Create": { - "en-US": "Create" - }, - "Delete %s?": { - "en-US": "Delete %s?" - }, - "Are you sure you want to delete %s?": { - "en-US": "Are you sure you want to delete %s?" - }, - "Copy World": { - "en-US": "Copy World" - }, - "Error %d": { - "en-US": "Error %d" - }, - "Closing this dialog will take you back to the last well-known state.": { - "en-US": "Closing this dialog will take you back to the last well-known state." - }, - "If this error persists, please submit feedback.": { - "en-US": "If this error persists, please submit feedback." - }, - "World Settings": { - "en-US": "World Settings" - }, - "CHALLENGE": { - "en-US": "CHALLENGE" - }, - "Start": { - "en-US": "Start" - }, - "Welcome to the KIPR Simulator!\n": { - "en-US": "Welcome to the KIPR Simulator!\n" - }, - "Compiling...\n": { - "en-US": "Compiling...\n" - }, - "Compilation succeeded with warnings.\n": { - "en-US": "Compilation succeeded with warnings.\n" - }, - "Compilation succeeded.\n": { - "en-US": "Compilation succeeded.\n" - }, - "Compilation failed.\n": { - "en-US": "Compilation failed.\n" - }, - "Something went wrong during compilation.\n": { - "en-US": "Something went wrong during compilation.\n" - }, - "Compilation succeeded with warnings\n": { - "en-US": "Compilation succeeded with warnings\n" - }, - "Compilation succeeded\n": { - "en-US": "Compilation succeeded\n" - }, - "Modules": { - "en-US": "Modules" - }, - "Functions": { - "en-US": "Functions" - }, - "Structures": { - "en-US": "Structures" - }, - "Enumerations": { - "en-US": "Enumerations" - }, - "Files": { - "en-US": "Files" - }, - "Search...": { - "en-US": "Search..." - }, - "Detailed Description": { - "en-US": "Detailed Description" - }, - "Parameters": { - "en-US": "Parameters" - }, - "Return Value": { - "en-US": "Return Value" - }, - "Fields": { - "en-US": "Fields" - }, - "Volume": { - "en-US": "Volume" - }, - "RGB": { - "en-US": "RGB" - }, - "Challenge": { - "en-US": "Challenge" - }, - "Stop": { - "en-US": "Stop" - }, - "Run": { - "en-US": "Run" - }, - "and External Contributors": { - "en-US": "and External Contributors" - }, - "Visit our": { - "en-US": "Visit our" - } - }, - "Volume (box) in the 3D scene": { - "Volume": { - "en-US": "Volume" - } - }, - "Red, Green, Blue": { - "RGB": { - "en-US": "RGB" - } - }, - "Computer text command line (e.g., DOS)": { - "Console": { - "en-US": "Console" - } - }, - "A predefined task for the user to complete": { - "Challenge": { - "en-US": "Challenge" - } - }, - "Terminate program execution": { - "Stop": { - "en-US": "Stop" - } - }, - "Begin program execution": { - "Run": { - "en-US": "Run" - } - }, - "Part of copyright notice, after KIPR is listed": { - "and External Contributors": { - "en-US": "and External Contributors", - "ur-PK": "asdasdasd" - } - }, - "URL link to github repository follows": { - "Visit our": { - "en-US": "Visit our" - } - } -} \ No newline at end of file From f73c845c5c2efb46368a0ba91865535b0e4a5638 Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Mon, 6 Feb 2023 15:03:12 -0500 Subject: [PATCH 13/18] Fix linter issues --- src/util/LocalizedString.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util/LocalizedString.ts b/src/util/LocalizedString.ts index 21c0c1ba..bf376d0c 100644 --- a/src/util/LocalizedString.ts +++ b/src/util/LocalizedString.ts @@ -146,7 +146,7 @@ namespace LocalizedString { [UR_PK]: [EN_US] }; - export const lookup = (localizedString: LocalizedString, locale: string) => { + export const lookup = (localizedString: LocalizedString, locale: Language) => { let currentLocale = locale; const fallbacks = FALLBACKS[locale] || []; let fallbackIndex = 0; From 0f28a0000187df2cfd8ddebe7dfc5292b5ff20bb Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Mon, 6 Feb 2023 15:04:40 -0500 Subject: [PATCH 14/18] Add i18n step to CI --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 782d6e19..9d091988 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,9 @@ jobs: # See https://github.com/yarnpkg/yarn/issues/7212 run: yarn install --cache-folder ./.yarncache working-directory: simulator + - name: Build i18n + run: yarn run build-i18n + working-directory: simulator - name: Build production bundle run: yarn build working-directory: simulator From dda7f02bc32fae3a29c06f4493d0a5093514a38d Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Mon, 6 Feb 2023 15:09:27 -0500 Subject: [PATCH 15/18] Fix autoinsert errors --- src/components/Info/Location.tsx | 2 +- src/components/documentation/DocumentationWindow.tsx | 2 +- src/components/documentation/FileDocumentation.tsx | 2 +- src/components/documentation/FunctionDocumentation.tsx | 2 +- src/components/documentation/ModuleDocumentation.tsx | 2 +- src/components/documentation/RootDocumentation.tsx | 2 +- src/components/documentation/StructureDocumentation.tsx | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/Info/Location.tsx b/src/components/Info/Location.tsx index 4dc17196..f55aa52e 100644 --- a/src/components/Info/Location.tsx +++ b/src/components/Info/Location.tsx @@ -6,7 +6,7 @@ import { ThemeProps } from '../theme'; import ValueEdit from '../ValueEdit'; import deepNeq from '../../deepNeq'; import { ReferenceFrame, Rotation, Vector3 } from '../../unit-math'; -import LocalizedString from 'util/LocalizedString'; +import LocalizedString from '../../util/LocalizedString'; import tr from '@i18n'; diff --git a/src/components/documentation/DocumentationWindow.tsx b/src/components/documentation/DocumentationWindow.tsx index e15c12a6..c6174da6 100644 --- a/src/components/documentation/DocumentationWindow.tsx +++ b/src/components/documentation/DocumentationWindow.tsx @@ -25,7 +25,7 @@ import ModuleDocumentation from './ModuleDocumentation'; import StructureDocumentation from './StructureDocumentation'; import tr from '@i18n'; -import LocalizedString from 'util/LocalizedString'; +import LocalizedString from '../../util/LocalizedString'; namespace DragState { export interface None { diff --git a/src/components/documentation/FileDocumentation.tsx b/src/components/documentation/FileDocumentation.tsx index ca987631..31ee00da 100644 --- a/src/components/documentation/FileDocumentation.tsx +++ b/src/components/documentation/FileDocumentation.tsx @@ -10,7 +10,7 @@ import { ThemeProps } from '../theme'; import FunctionBrief from './FunctionBrief'; import tr from '@i18n'; -import LocalizedString from 'util/LocalizedString'; +import LocalizedString from '../../util/LocalizedString'; export interface FileDocumentationProps extends StyleProps, ThemeProps { language: 'c' | 'python'; diff --git a/src/components/documentation/FunctionDocumentation.tsx b/src/components/documentation/FunctionDocumentation.tsx index 9bd1fecb..2db1d083 100644 --- a/src/components/documentation/FunctionDocumentation.tsx +++ b/src/components/documentation/FunctionDocumentation.tsx @@ -11,7 +11,7 @@ import FunctionPrototype from './FunctionPrototype'; import { toPythonType } from './util'; import tr from '@i18n'; -import LocalizedString from 'util/LocalizedString'; +import LocalizedString from '../../util/LocalizedString'; export interface FunctionDocumentationProps extends StyleProps, ThemeProps { language: 'c' | 'python'; diff --git a/src/components/documentation/ModuleDocumentation.tsx b/src/components/documentation/ModuleDocumentation.tsx index 2a129885..62781fe4 100644 --- a/src/components/documentation/ModuleDocumentation.tsx +++ b/src/components/documentation/ModuleDocumentation.tsx @@ -11,7 +11,7 @@ import { ThemeProps } from '../theme'; import FunctionBrief from './FunctionBrief'; import tr from '@i18n'; -import LocalizedString from 'util/LocalizedString'; +import LocalizedString from '../../util/LocalizedString'; export interface ModuleDocumentationProps extends StyleProps, ThemeProps { language: 'c' | 'python'; diff --git a/src/components/documentation/RootDocumentation.tsx b/src/components/documentation/RootDocumentation.tsx index 2fe17d36..5b5a8947 100644 --- a/src/components/documentation/RootDocumentation.tsx +++ b/src/components/documentation/RootDocumentation.tsx @@ -20,7 +20,7 @@ import EnumerationBrief from './EnumerationBrief'; import EnumerationDocumentation from '../../state/State/Documentation/EnumerationDocumentation'; import tr from '@i18n'; -import LocalizedString from 'util/LocalizedString'; +import LocalizedString from '../../util/LocalizedString'; export interface RootDocumentationProps extends ThemeProps { language: 'c' | 'python'; diff --git a/src/components/documentation/StructureDocumentation.tsx b/src/components/documentation/StructureDocumentation.tsx index dff349b7..bf40a3d0 100644 --- a/src/components/documentation/StructureDocumentation.tsx +++ b/src/components/documentation/StructureDocumentation.tsx @@ -13,7 +13,7 @@ import StructureBrief from './StructureBrief'; import { toPythonType } from './util'; import tr from '@i18n'; -import LocalizedString from 'util/LocalizedString'; +import LocalizedString from '../../util/LocalizedString'; export interface StructureDocumentationProps extends StyleProps, ThemeProps { language: 'c' | 'python'; From 7d82500bcd22335dfa049ffab75cecdaf76925e5 Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Tue, 7 Feb 2023 01:22:25 -0500 Subject: [PATCH 16/18] Fix outstanding issues --- src/components/OpenSceneDialog.tsx | 2 +- src/components/World/NodeSettings.tsx | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/OpenSceneDialog.tsx b/src/components/OpenSceneDialog.tsx index a5e01191..8e80b4e0 100644 --- a/src/components/OpenSceneDialog.tsx +++ b/src/components/OpenSceneDialog.tsx @@ -130,7 +130,7 @@ class OpenSceneDialog extends React.PureComponent - Accept + {LocalizedString.lookup(tr('Accept'), locale)}
); diff --git a/src/components/World/NodeSettings.tsx b/src/components/World/NodeSettings.tsx index 0de28228..ff8e36fe 100644 --- a/src/components/World/NodeSettings.tsx +++ b/src/components/World/NodeSettings.tsx @@ -912,12 +912,12 @@ class NodeSettings extends React.PureComponent { ]; const EULER_ORDER_OPTIONS: ComboBox.Option[] = [ - ComboBox.option('XYZ', 'xyz'), - ComboBox.option('YZX', 'yzx'), - ComboBox.option('ZXY', 'zxy'), - ComboBox.option('XZY', 'xzy'), - ComboBox.option('YXZ', 'yxz'), - ComboBox.option('ZYX', 'zyx'), + ComboBox.option(LocalizedString.lookup(tr('XYZ', 'Rotation order'), locale), 'xyz'), + ComboBox.option(LocalizedString.lookup(tr('YZX', 'Rotation order'), locale), 'yzx'), + ComboBox.option(LocalizedString.lookup(tr('ZXY', 'Rotation order'), locale), 'zxy'), + ComboBox.option(LocalizedString.lookup(tr('XZY', 'Rotation order'), locale), 'xzy'), + ComboBox.option(LocalizedString.lookup(tr('YXZ', 'Rotation order'), locale), 'yxz'), + ComboBox.option(LocalizedString.lookup(tr('ZYX', 'Rotation order'), locale), 'zyx'), ]; const NODE_TYPE_OPTIONS: ComboBox.Option[] = [ From d5a7f0ea19261438ff4948b03de03a85567dcb5d Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Tue, 7 Feb 2023 01:23:11 -0500 Subject: [PATCH 17/18] regenerate POs --- i18n/po/ar-SA.po | 24 ++++++++++++++++++++++++ i18n/po/bg-BG.po | 24 ++++++++++++++++++++++++ i18n/po/cs-CZ.po | 24 ++++++++++++++++++++++++ i18n/po/da-DK.po | 24 ++++++++++++++++++++++++ i18n/po/de-DE.po | 24 ++++++++++++++++++++++++ i18n/po/el-GR.po | 24 ++++++++++++++++++++++++ i18n/po/en-UK.po | 24 ++++++++++++++++++++++++ i18n/po/en-US.po | 24 ++++++++++++++++++++++++ i18n/po/es-ES.po | 24 ++++++++++++++++++++++++ i18n/po/es-MX.po | 24 ++++++++++++++++++++++++ i18n/po/fa-IR.po | 24 ++++++++++++++++++++++++ i18n/po/fi-FI.po | 24 ++++++++++++++++++++++++ i18n/po/fr-FR.po | 24 ++++++++++++++++++++++++ i18n/po/he-IL.po | 24 ++++++++++++++++++++++++ i18n/po/hi-IN.po | 24 ++++++++++++++++++++++++ i18n/po/hu-HU.po | 24 ++++++++++++++++++++++++ i18n/po/id-ID.po | 24 ++++++++++++++++++++++++ i18n/po/it-IT.po | 24 ++++++++++++++++++++++++ i18n/po/ja-JP.po | 24 ++++++++++++++++++++++++ i18n/po/ko-KR.po | 24 ++++++++++++++++++++++++ i18n/po/ms-MY.po | 24 ++++++++++++++++++++++++ i18n/po/nl-NL.po | 24 ++++++++++++++++++++++++ i18n/po/no-NO.po | 24 ++++++++++++++++++++++++ i18n/po/pl-PL.po | 24 ++++++++++++++++++++++++ i18n/po/pt-BR.po | 24 ++++++++++++++++++++++++ i18n/po/pt-PT.po | 24 ++++++++++++++++++++++++ i18n/po/ro-RO.po | 24 ++++++++++++++++++++++++ i18n/po/ru-RU.po | 24 ++++++++++++++++++++++++ i18n/po/sk-SK.po | 24 ++++++++++++++++++++++++ i18n/po/sv-SE.po | 24 ++++++++++++++++++++++++ i18n/po/th-TH.po | 24 ++++++++++++++++++++++++ i18n/po/tr-TR.po | 24 ++++++++++++++++++++++++ i18n/po/ur-PK.po | 24 ++++++++++++++++++++++++ i18n/po/vi-VN.po | 24 ++++++++++++++++++++++++ i18n/po/zh-CN.po | 24 ++++++++++++++++++++++++ i18n/po/zh-TW.po | 24 ++++++++++++++++++++++++ 36 files changed, 864 insertions(+) diff --git a/i18n/po/ar-SA.po b/i18n/po/ar-SA.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/ar-SA.po +++ b/i18n/po/ar-SA.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/bg-BG.po b/i18n/po/bg-BG.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/bg-BG.po +++ b/i18n/po/bg-BG.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/cs-CZ.po b/i18n/po/cs-CZ.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/cs-CZ.po +++ b/i18n/po/cs-CZ.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/da-DK.po b/i18n/po/da-DK.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/da-DK.po +++ b/i18n/po/da-DK.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/de-DE.po b/i18n/po/de-DE.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/de-DE.po +++ b/i18n/po/de-DE.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/el-GR.po b/i18n/po/el-GR.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/el-GR.po +++ b/i18n/po/el-GR.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/en-UK.po b/i18n/po/en-UK.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/en-UK.po +++ b/i18n/po/en-UK.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/en-US.po b/i18n/po/en-US.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/en-US.po +++ b/i18n/po/en-US.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/es-ES.po b/i18n/po/es-ES.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/es-ES.po +++ b/i18n/po/es-ES.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/es-MX.po b/i18n/po/es-MX.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/es-MX.po +++ b/i18n/po/es-MX.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/fa-IR.po b/i18n/po/fa-IR.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/fa-IR.po +++ b/i18n/po/fa-IR.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/fi-FI.po b/i18n/po/fi-FI.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/fi-FI.po +++ b/i18n/po/fi-FI.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/fr-FR.po b/i18n/po/fr-FR.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/fr-FR.po +++ b/i18n/po/fr-FR.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/he-IL.po b/i18n/po/he-IL.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/he-IL.po +++ b/i18n/po/he-IL.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/hi-IN.po b/i18n/po/hi-IN.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/hi-IN.po +++ b/i18n/po/hi-IN.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/hu-HU.po b/i18n/po/hu-HU.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/hu-HU.po +++ b/i18n/po/hu-HU.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/id-ID.po b/i18n/po/id-ID.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/id-ID.po +++ b/i18n/po/id-ID.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/it-IT.po b/i18n/po/it-IT.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/it-IT.po +++ b/i18n/po/it-IT.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/ja-JP.po b/i18n/po/ja-JP.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/ja-JP.po +++ b/i18n/po/ja-JP.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/ko-KR.po b/i18n/po/ko-KR.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/ko-KR.po +++ b/i18n/po/ko-KR.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/ms-MY.po b/i18n/po/ms-MY.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/ms-MY.po +++ b/i18n/po/ms-MY.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/nl-NL.po b/i18n/po/nl-NL.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/nl-NL.po +++ b/i18n/po/nl-NL.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/no-NO.po b/i18n/po/no-NO.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/no-NO.po +++ b/i18n/po/no-NO.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/pl-PL.po b/i18n/po/pl-PL.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/pl-PL.po +++ b/i18n/po/pl-PL.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/pt-BR.po b/i18n/po/pt-BR.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/pt-BR.po +++ b/i18n/po/pt-BR.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/pt-PT.po b/i18n/po/pt-PT.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/pt-PT.po +++ b/i18n/po/pt-PT.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/ro-RO.po b/i18n/po/ro-RO.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/ro-RO.po +++ b/i18n/po/ro-RO.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/ru-RU.po b/i18n/po/ru-RU.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/ru-RU.po +++ b/i18n/po/ru-RU.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/sk-SK.po b/i18n/po/sk-SK.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/sk-SK.po +++ b/i18n/po/sk-SK.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/sv-SE.po b/i18n/po/sv-SE.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/sv-SE.po +++ b/i18n/po/sv-SE.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/th-TH.po b/i18n/po/th-TH.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/th-TH.po +++ b/i18n/po/th-TH.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/tr-TR.po b/i18n/po/tr-TR.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/tr-TR.po +++ b/i18n/po/tr-TR.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/ur-PK.po b/i18n/po/ur-PK.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/ur-PK.po +++ b/i18n/po/ur-PK.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/vi-VN.po b/i18n/po/vi-VN.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/vi-VN.po +++ b/i18n/po/vi-VN.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/zh-CN.po b/i18n/po/zh-CN.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/zh-CN.po +++ b/i18n/po/zh-CN.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" diff --git a/i18n/po/zh-TW.po b/i18n/po/zh-TW.po index 2581034d..63e2ec7d 100644 --- a/i18n/po/zh-TW.po +++ b/i18n/po/zh-TW.po @@ -1055,3 +1055,27 @@ msgstr "" msgctxt "URL link to github repository follows" msgid "Visit our" msgstr "" + +msgctxt "Rotation order" +msgid "XYZ" +msgstr "" + +msgctxt "Rotation order" +msgid "YZX" +msgstr "" + +msgctxt "Rotation order" +msgid "ZXY" +msgstr "" + +msgctxt "Rotation order" +msgid "XZY" +msgstr "" + +msgctxt "Rotation order" +msgid "YXZ" +msgstr "" + +msgctxt "Rotation order" +msgid "ZYX" +msgstr "" From 633100862691c865df5fd268256e04298fe37d8e Mon Sep 17 00:00:00 2001 From: Braden McDorman Date: Tue, 7 Feb 2023 13:37:46 -0500 Subject: [PATCH 18/18] Resolve final? issues --- README.md | 5 +++++ src/components/OpenSceneDialog.tsx | 4 ++-- src/scenes/jbc15b.ts | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bfc3fc40..e8466027 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,11 @@ Navigate to the root directory of this repository, then run: yarn install ``` +## Build Translations +```bash +yarn run build-i18n +``` + # Running In one terminal, build in watch mode: diff --git a/src/components/OpenSceneDialog.tsx b/src/components/OpenSceneDialog.tsx index 8e80b4e0..774a6ae5 100644 --- a/src/components/OpenSceneDialog.tsx +++ b/src/components/OpenSceneDialog.tsx @@ -148,12 +148,12 @@ class OpenSceneDialog extends React.PureComponent }; private createSceneName = (sceneId: string, scene: Scene) => { - const { theme } = this.props; + const { theme, locale } = this.props; const { selectedSceneId } = this.state; return ( this.onSceneClick(sceneId)}> - {LocalizedString.lookup(scene.name, LocalizedString.EN_US)} + {LocalizedString.lookup(scene.name, locale)} ); }; diff --git a/src/scenes/jbc15b.ts b/src/scenes/jbc15b.ts index ee47e9f3..f73f5384 100644 --- a/src/scenes/jbc15b.ts +++ b/src/scenes/jbc15b.ts @@ -57,7 +57,7 @@ export const JBC_15B: Scene = { 'ream1': { type: 'from-template', templateId: 'ream', - name: { [LocalizedString.EN_US]: 'Paper Ream 1' }, + name: tr('Paper Ream 1'), startingOrigin: REAM1_ORIGIN, origin: REAM1_ORIGIN, visible: true, @@ -65,7 +65,7 @@ export const JBC_15B: Scene = { 'ream2': { type: 'from-template', templateId: 'ream', - name: { [LocalizedString.EN_US]: 'Paper Ream 2' }, + name: tr('Paper Ream 2'), startingOrigin: REAM2_ORIGIN, origin: REAM2_ORIGIN, visible: true,