Skip to content

Commit d99f380

Browse files
loiswells97jamiebensteadraspberrypitranslationsbotmaxelkins
authored
Translate web component (#1224)
Co-authored-by: Jamie Benstead <jamie.benstead@gmail.com> Co-authored-by: Raspberry Pi Translations Bot <36728703+raspberrypitranslationsbot@users.noreply.github.com> Co-authored-by: Jamie Benstead <57325966+jamiebenstead@users.noreply.github.com> Co-authored-by: Max Elkins <max.elkins@raspberrypi.org>
1 parent 6f3ad96 commit d99f380

28 files changed

+775
-1349
lines changed

CHANGELOG.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,28 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## Unreleased
8+
9+
### Added
10+
11+
- Ability to translate demo project instructions (#1230)
12+
13+
### Changed
14+
15+
- Improved status bar styling (#1221)
16+
- Added method to translate last saved time (#1223)
17+
- Deleting unused strings and components (#1225)
18+
19+
### Fixed
20+
21+
- CrowdIn issue for pluralised strings with no `one` version (#1234)
22+
- Update `imagePanel.gallery` string to remove Title Casing for consistency (#1238)
23+
- Update `imageUploadButton.uploadImage` string to remove Title Casing for consistency (#1238)
24+
25+
### Removed
26+
27+
- Remove unused translation string `filePanel.images` (#1238)
28+
729
## [0.30.3] - 2025-08-07
830

931
### Fixed
@@ -25,13 +47,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
2547
- Enabled `hyphens: auto` globally (with exceptions) to prevent overflow with longer words (#1215)
2648
- Removed fixed size from `ProjectBar` to prevent overflow when text wraps (#1221)
2749
- Added missing translation strings (#1222)
28-
- Changed `colour_raw` to now correctly return a 4-tuple (R, G, B, Clear) in simulation (#1231)
50+
51+
### Removed
52+
53+
- Remove unused translation string `filePanel.images` (#1238)
2954

3055
### Changed
3156

3257
- Improved status bar styling (#1221)
3358
- Added horizontal scrollbar to editor (#1228)
3459
- Add theme for scrollbars (#1233)
60+
- Changed `colour_raw` to now correctly return a 4-tuple (R, G, B, Clear) in simulation (#1231)
3561

3662
## [0.30.1] - 2025-06-09
3763

crowdin.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
files:
2+
- source: /public/translations/en.json
3+
translation: /%original_path%/%locale%.json
4+
type: i18next_json

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"classnames": "^2.3.2",
3131
"codemirror": "^6.0.1",
3232
"container-query-polyfill": "^1.0.2",
33-
"date-fns": "^2.29.3",
33+
"date-fns": "^4.1.0",
3434
"eslint-config-prettier": "^8.8.0",
3535
"file-saver": "^2.0.5",
3636
"fs-extra": "^9.0.1",
@@ -39,6 +39,7 @@
3939
"highcharts-react-official": "^3.1.0",
4040
"i18next": "^22.0.3",
4141
"i18next-browser-languagedetector": "^7.0.0",
42+
"i18next-http-backend": "^3.0.2",
4243
"identity-obj-proxy": "3.0.0",
4344
"jest-axe": "^7.0.0",
4445
"jest-canvas-mock": "^2.5.2",

public/translations/en.json

Lines changed: 261 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,261 @@
1+
{
2+
"modal": {
3+
"close": "Close",
4+
"error": {
5+
"error": "Error",
6+
"heading": "An error has occurred",
7+
"externalLink": {
8+
"message": "Unfortunately links to external sites are not available in the Editor."
9+
}
10+
}
11+
},
12+
"editorPanel": {
13+
"ariaLabel": "editor text input",
14+
"characterLimitError": "Error: Character limit reached",
15+
"characterLimitExplanation_one": "Files in the editor are limited to {{count}} character",
16+
"characterLimitExplanation_other": "Files in the editor are limited to {{count}} characters",
17+
"viewOnly": "View only",
18+
"close": "close"
19+
},
20+
"filePanel": {
21+
"errors": {
22+
"reservedFileName": "{{fileName}} is a reserved file name. Please choose a different name.",
23+
"containsSpaces": "File names must not contain spaces.",
24+
"generalError": "Error",
25+
"notUnique": "File names must be unique.",
26+
"unsupportedExtension": "File names must end in {{allowedExtensions}}."
27+
},
28+
"files": "Project files",
29+
"newFileButton": "Add file",
30+
"newFileModal": {
31+
"cancel": "Cancel",
32+
"heading": "Add a new file to your project",
33+
"helpText": "Remember to add the file extension at the end of your file name, for example, {{examples}}",
34+
"helpTextExample": {
35+
"html": "'file.html', 'file.css' or 'file.js'",
36+
"python": "'file.py'"
37+
},
38+
"inputLabel": "Name your file",
39+
"addFile": "Add file"
40+
},
41+
"renameFileModal": {
42+
"cancel": "Cancel",
43+
"heading": "Rename file",
44+
"inputLabel": "Name your file",
45+
"save": "Save"
46+
},
47+
"fileMenu": {
48+
"label": "Open file menu",
49+
"renameItem": "Rename file"
50+
}
51+
},
52+
"downloadPanel": {
53+
"heading": "Save & download",
54+
"logInTitle": "Log in to save your progress",
55+
"logInHint": "With a Raspberry Pi Account you can save your code and project steps progress.",
56+
"logInButton": "Log in to save",
57+
"signUpButton": "Sign up",
58+
"downloadHint": "Download your project files so you can use them offline and in a different code editor.",
59+
"downloadButton": "Download project"
60+
},
61+
"projectName": {
62+
"label": "Project name",
63+
"newProject": "New Project"
64+
},
65+
"header": {
66+
"download": "Download",
67+
"downloadFileNameDefault": "my {{project_type}} project",
68+
"editorLogoAltText": "Editor logo",
69+
"renameProject": "Edit project name",
70+
"renameSave": "Save project name",
71+
"save": "Save",
72+
"loginToSave": "Log in to save"
73+
},
74+
"imagePanel": {
75+
"gallery": "Image gallery"
76+
},
77+
"infoPanel": {
78+
"info": "Information"
79+
},
80+
"instructionsPanel": {
81+
"demoInstructions": {
82+
"title": "How instructions work",
83+
"enablingInstructions": "Enabling instructions",
84+
"visible": "Any text written here will be visible to students in the sidebar.",
85+
"writingInstructions": "Writing instructions",
86+
"markdown": "Write your instructions using [Markdown](https://www.markdownguide.org/).",
87+
"whatYouCanDo": "What you can do",
88+
"lists": "Lists",
89+
"bulletPoints": "Bullet points",
90+
"numberedSteps": "Numbered steps"
91+
},
92+
"emptyState": {
93+
"addInstructions": "Add instructions",
94+
"edits": "Like project code, students will not see any edits you make to the instructions after they have saved their version of the project.",
95+
"location": "These instructions will be shown to students in their project sidebar and will be view-only.",
96+
"markdown": "Instructions are written in <0>markdown</0>.",
97+
"purpose": "Instructions can be added to your project to guide students."
98+
},
99+
"removeInstructions": "Remove instructions",
100+
"nextStep": "Next step",
101+
"previousStep": "Previous step",
102+
"projectSteps": "Project instructions",
103+
"edit": "Edit",
104+
"view": "View",
105+
"removeInstructionsModal": {
106+
"removeInstructions": "Remove instructions",
107+
"close": "Close",
108+
"heading": "Remove project instructions?",
109+
"removeInstuctionsWarning": "You are about to remove the instructions from the project.",
110+
"resultRemovingInstructions": "As a result of removing these instructions:",
111+
"instructionsWillBeDeleted": "Instructions content will be deleted.",
112+
"studentsWorkingProjectNotRecievedInstructions": "Students who start working on this project will not receive instructions.",
113+
"studentsStartedWillSeeInstructions": "Students who have already started working on this project will still be able to see the instructions as they were when they started."
114+
}
115+
},
116+
"projectsPanel": {
117+
"projects": "Projects",
118+
"yourProjectsButton": "Go to your projects",
119+
"projectTypeLabel": "Project type"
120+
},
121+
"settingsPanel": {
122+
"info": "Settings"
123+
},
124+
"input": {
125+
"comment": {
126+
"py5": "Py5: imported mode"
127+
}
128+
},
129+
"mobile": {
130+
"code": "Code",
131+
"menu": "Menu",
132+
"output": "Output",
133+
"preview": "Preview",
134+
"steps": "Steps"
135+
},
136+
"modals": {
137+
"close": "Close"
138+
},
139+
"notifications": {
140+
"close": "close",
141+
"loginPrompt": "To save this project and access it later, don't forget to log in or sign up!",
142+
"projectRenamed": "You have renamed your project.",
143+
"projectSaved": "Your project has been saved",
144+
"savePrompt": "Save this project to access it later under \"Your projects\"."
145+
},
146+
"output": {
147+
"errors": {
148+
"interrupted": "Execution interrupted"
149+
},
150+
"newTab": "Preview in new tab",
151+
"preview": "preview",
152+
"senseHat": {
153+
"controls": {
154+
"colour": "colour",
155+
"humidity": "humidity",
156+
"motion": "motion",
157+
"motionSensorOptions": {
158+
"no": "No",
159+
"yes": "Yes"
160+
},
161+
"name": "Space Station Control Panel",
162+
"pressure": "pressure",
163+
"temperature": "temperature",
164+
"timer": "timer"
165+
},
166+
"model": {
167+
"pitch": "pitch",
168+
"roll": "roll",
169+
"yaw": "yaw"
170+
}
171+
},
172+
"textOutput": "Text output",
173+
"visualOutput": "Visual output"
174+
},
175+
"outputViewToggle": {
176+
"buttonTabLabel": "Tabbed view",
177+
"buttonTabTitle": "Tabbed view",
178+
"buttonSplitLabel": "Split view",
179+
"buttonSplitTitle": "Split view"
180+
},
181+
"project": {
182+
"loading": "Loading",
183+
"untitled": "Untitled project"
184+
},
185+
"projectTypes": {
186+
"html": "HTML/CSS",
187+
"python": "Python"
188+
},
189+
"runButton": {
190+
"run": "Run",
191+
"stop": "Stop",
192+
"stopping": "Stopping..."
193+
},
194+
"saveStatus": {
195+
"saving": "Saving",
196+
"saved": "Saved"
197+
},
198+
"runners": {
199+
"HtmlOutput": "HTML Output Preview"
200+
},
201+
"sidebar": {
202+
"collapse": "Collapse sidebar",
203+
"download": "Download project",
204+
"expand": "Expand sidebar",
205+
"file": "Project files",
206+
"images": "Image gallery",
207+
"settings": "Settings",
208+
"projects": "Projects",
209+
"information": "Information",
210+
"information_text": "Our Code Editor is a tool to help young people learn to code. We have only included functions that are simple and safe to use. That's why, for example, links to other websites are not allowed.",
211+
"instructions": "Project instructions",
212+
"feedback": "Feedback",
213+
"help": "Help",
214+
"privacy": "Privacy",
215+
"cookies": "Cookies",
216+
"accessibility": "Accessibility",
217+
"safeguarding": "Safeguarding",
218+
"charity": "Raspberry Pi Foundation - UK registered charity 1129409",
219+
"settingsMenu": {
220+
"heading": "Settings",
221+
"textSize": "Text size",
222+
"theme": "Theme",
223+
"textSizeOptions": {
224+
"large": "Large",
225+
"medium": "Medium",
226+
"small": "Small"
227+
},
228+
"themeOptions": {
229+
"dark": "Dark",
230+
"light": "Light"
231+
}
232+
}
233+
},
234+
"webComponent": {
235+
"loading": "Loading",
236+
"failed": "Load failed"
237+
},
238+
"imageUploadButton": {
239+
"uploadImage": "Upload image",
240+
"uploadAnImage": "Upload an image",
241+
"info": "Drag and drop images here, or click to select images from file",
242+
"cancel": "Cancel",
243+
"save": "Save",
244+
"or": "or",
245+
"errors": {
246+
"error": "Error",
247+
"imageNameNotUnique": "Image names must be unique.",
248+
"invalidImageExtension": "Image names must end in {{extensions}}."
249+
}
250+
},
251+
"newInputPanelButton": {
252+
"buttonText": "Add another panel"
253+
},
254+
"button": {
255+
"yes": "Yes",
256+
"no": "No"
257+
},
258+
"common": {
259+
"or": "or"
260+
}
261+
}

0 commit comments

Comments
 (0)