Skip to content

Commit 1214f78

Browse files
authored
Merge pull request #970 from marionbarker/dev_3.9.4
Update LoopDocs for dev 3.9.4
2 parents 003f974 + 3158ec3 commit 1214f78

File tree

3 files changed

+164
-94
lines changed

3 files changed

+164
-94
lines changed

docs/faqs/app-translation.md

Lines changed: 71 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,49 @@ If a given phrase in the app does not have a translation string in what is calle
2929

3030
For the *Loop* app and the submodules (Pumps, CGM and Services) associated with the *Loop* app, the [*lokalise*](https://app.lokalise.com/projects) website is used. You must be signed up with the *Loop* project to be able to see *Loop* translations at that site.
3131

32-
!!! note "Want to Sign Up to Translate?"
32+
!!! note "Want to Translate?"
3333
To volunteer to translate, join [Loop zulipchat](https://loop.zulipchat.com/) and send a direct message to Marion Barker with your email address and the language(s) you can translate.
3434

35+
If you want translate one of the new CGM / Pump repositories: DanaKit, EversenseKit and MedtrumKit, indicate that as well. Those new repositories are handled using a [*crowdin* project](#crowdin-projects) for each repository.
36+
3537

3638
## Code Translation
3739

3840
Localization (strings translated to the selected language in the app) makes use of volunteers who input translations in a special web app. Their work is then dowloaded and imported into the code used by the *Loop* app and its submodules (repositories on *GitHub*).
3941

4042
If you notice *Loop* app messages in English even though you selected a specific language, and you can help translate it, please volunteer.
4143

42-
Translations for Loop are performed by volunteers at [*lokalise*](https://app.lokalise.com/projects).
44+
### Loop *lokalise* project
45+
46+
Translations for most of the repositories used by Loop are performed by volunteers at [*lokalise*](https://app.lokalise.com/projects).
47+
48+
Some newer CGM and Pump modules, currently found in feature branches, get their translations from *crowdin* instead of *lokalise*.
49+
50+
* There was an early attempt to use both *lokalise* and *crowdin* but merging input from two sources was deemed impractical
51+
* The DanaKit, MedtrumKit and EversenseKit translations are each handled by separate [*crowdin* projects](#crowdin-projects)
52+
53+
### *crowdin* projects
54+
55+
Some new pump and CGM modules are provided by developers associated with the *Trio* (*OpenAPS*) community. They have an established base of translators who are familiar with using *crowdin*. Translations for each of these new repositories is handled directly at the repository level. Loop translators who want to help with these repositories can just add that information to the request when they [volunteer to translate](#volunteer-to-translate).
56+
57+
* [DanaKit crowdin](https://crowdin.com/project/danakit)
58+
* [MedtrumKit crowdin](https://crowdin.com/project/medtrumkit)
59+
* EversenseKit - not configured yet, coming soon
4360

44-
To volunteer, join [Loop zulipchat](https://loop.zulipchat.com/) and send a direct message to Marion Barker with your email address and the language(s) you can translate. You will get an invitation to join the project. You do not need to start a new project, start a free trial or sign up for anything special; just join the project you are invited to.
61+
### Volunteer to Translate
62+
63+
To volunteer, join [Loop zulipchat](https://loop.zulipchat.com/) and send a direct message to Marion Barker with your email address and the language(s) you can translate. Indicate whether you need access to the new repositories (*crowdin*) in addition to the Loop repositories. You will get an invitation to join the Loop *lokalise* project. You do not need to start a new *lokalise* project. Do not start a free *lokalise* trial or sign up for anything special; just join the project you are invited to.
4564

4665
> If you are using the *Trio* or *iAPS* app instead of the *Loop* app, you can still assist with Pump, CGM and Tidepool module localization through *Loop* *lokalise*. Some repositories from *Loop* are used by [*Trio* and *iAPS*](#what-about-other-ios-apps).
4766
67+
Alternative contacts for addtion to *crowdin*:
68+
69+
* Bastiaan Verhaar in zulipchat
70+
* Bastiaan is known as `INeedSugar` in [Trio discord](https://discord.gg/FnwFEFUwXE) and [iAPS discord](https://discord.com/invite/ptkk2Y264Z)
71+
* `lubor` in [iAPS discord](https://discord.com/invite/ptkk2Y264Z)
72+
73+
## Lokalise Information
74+
4875
### Initial Screen on *lokalise*
4976

5077
When you log in to *lokalise*, you will see a screen similar to the screenshot below. Tap on the *Loop* icon, highlighted in the graphic with a red rectangle, to start translating.
@@ -94,7 +121,7 @@ If a `key` does not have a translation in a given language, then when running th
94121
95122
### Select a Submodule
96123

97-
Suppose you know that you want to modify translations for a particular submodule (CGM, Pump or Service module). You can choose context in *lokalise*.
124+
Suppose you know that you want to modify translations for a particular submodule (CGM, Pump or Service module). You can choose context in *lokalise*; or if it is one of the newer submodules, go directly to the *crowdin* project for that submodule. See [Submodule Table for Multiple Apps](#submodule-table-for-multiple-apps) for a detailed listing.
98125

99126
* Tap on Filter
100127
* Tap on Context
@@ -106,29 +133,11 @@ Suppose you know that you want to modify translations for a particular submodule
106133

107134
The screenshot below is configured for someone translating simplified Chinese for the DanaKit pump.
108135

136+
**NOTE** The DanaKit keys are no longer visible in *lokalise*. They are being handled using [*crowdin*](#crowdin-projects).
137+
109138
![choose a submodule for translation](img/lokalise-by-context-submodule-xcstrings.png){width="1024"}
110139
{align="center"}
111140

112-
#### Submodule Table for Multiple Apps
113-
114-
These submodules are used by the *Loop*, *Trio* and *iAPS* apps.
115-
116-
| Type | <div style="width:145px"></div> Name | Files |
117-
|:-:|:--|:--|
118-
| CGM | `CGMBLEKit` | CGMBLEKit/CGMBLEKit/Localizable.xcstrings<br>CGMBLEKit/CGMBLEKitUI/Localizable.xcstrings |
119-
| CGM | `G7SensorKit` | G7SensorKit/G7SensorKit/Localizable.xcstrings<br>G7SensorKit/G7SensorKitUI/Localizable.xcstrings |
120-
| CGM | `LibreTransmitter` | LibreTransmitter/LibreTransmitter/Localizable.xcstrings<br>LibreTransmitter/LibreTransmitterUI/Localizable.xcstrings |
121-
| CGM | `Dexcom Share` | dexcom-share-client-swift/ShareClient/Localizable.xcstrings<br>dexcom-share-client-swift/ShareClientUI/Localizable.xcstrings |
122-
| CGM | `NightscoutRemoteCGM` | NightscoutRemoteCGM/NightscoutRemoteCGM/Localizable.xcstrings |
123-
| Pump | `DanaKit` | DanaKit/Localization/Localizable.xcstrings |
124-
| Pump | `MedtrumKit` | MedtrumKit/Localization/Localizable.xcstrings |
125-
| Pump | `OmniBLE` | OmniBLE/Localizable.xcstrings<br>OmniBLE/OmniBLE/Localizable.xcstrings |
126-
| Pump | `RileyLinkKit` | RileyLinkKit/RileyLink/Localizable.xcstrings<br>RileyLinkKit/RileyLink/LoopKit.xcstrings<br>RileyLinkKit/RileyLinkBLEKit/Localizable.xcstrings<br>RileyLinkKit/RileyLinkKitUI/Localizable.xcstrings |
127-
| Pump | `MinimedKit` | MinimedKit/MinimedKit/Resources/Localizable.xcstrings<br>MinimedKit/MinimedKitUI/Resources/Localizable.xcstrings<br>MinimedKit/MinimedKitUI/Resources/mul.lproj/MinimedPumpManager.xcstrings|
128-
| Pump | `OmniKit` | OmniKit/Localizable.xcstrings<br>OmniKit/OmniKit/Resources/Localizable.xcstrings<br>OmniKit/OmniKitUI/Resources/Localizable.xcstrings |
129-
| Misc | `LoopKit` | LoopKit/LoopKit/Resources/Localizable.xcstrings<br>LoopKit/LoopKitUI/Resources/Localizable.xcstrings<br>LoopKit/LoopKitUI/Resources/mul.lproj/InsulinKit.xcstrings<br>LoopKit/LoopKitUI/Resources/mul.lproj/LegacyInsulinDeliveryTableViewController.xcstrings<br>LoopKit/MockKit/Resources/Localizable.xcstrings<br>LoopKit/MockKitUI/Resources/Localizable.xcstrings |
130-
| Service | `TidepoolService` | TidepoolService/TidepoolServiceKit/Localizable.xcstrings<br>TidepoolService/TidepoolServiceKitUI/Localizable.xcstrings |
131-
132141
### Matches Source
133142

134143
Some of the String Catalogs have had the English version inserted in the translation field. This was done inadvertently. To find these instances in the language you are translating, set up a custom filter.
@@ -173,12 +182,49 @@ The *Trio* and the *iAPS* apps use submodules for CGM, Pump and Service features
173182

174183
The bottom line is
175184

176-
* Submodule translations are handled at [*lokalise*](https://app.lokalise.com/)
185+
* Loop and older (pre 2025) submodule translations are handled at [*lokalise*](https://app.lokalise.com/)
186+
* New submodules, DanaKit, EversenseKit, and MedtrumKit. are currently handled in [*crowdin* projects](#crowdin-projects) for the individual repositories
177187
* *Trio* translations are handled at [crowdin for *Trio*](https://crowdin.com/project/trio/invite/public?h=48e1a77abd1611860f475c1ce17540112591650&show_welcome)
178188
* *iAPS* translations are handled at [crowdin for *iAPS*](https://crowdin.com/project/iaps)
179189

180190
You can use the *Trio* or *iAPS* discord server to volunteer to translate using *lokalise* by sending a direct message to Marion Barker if you are not a member of zulipchat.
181191

192+
193+
### Submodule Table for Multiple Apps
194+
195+
These submodules are used by the *Loop*, *Trio* and *iAPS* apps and are handled by *lokalise*.
196+
197+
| Type | <div style="width:145px"></div> Name | Files |
198+
|:-:|:--|:--|
199+
| CGM | `CGMBLEKit` | CGMBLEKit/CGMBLEKit/Localizable.xcstrings<br>CGMBLEKit/CGMBLEKitUI/Localizable.xcstrings |
200+
| CGM | `G7SensorKit` | G7SensorKit/G7SensorKit/Localizable.xcstrings<br>G7SensorKit/G7SensorKitUI/Localizable.xcstrings |
201+
| CGM | `LibreTransmitter` | LibreTransmitter/LibreTransmitter/Localizable.xcstrings<br>LibreTransmitter/LibreTransmitterUI/Localizable.xcstrings |
202+
| CGM | `Dexcom Share` | dexcom-share-client-swift/ShareClient/Localizable.xcstrings<br>dexcom-share-client-swift/ShareClientUI/Localizable.xcstrings |
203+
| CGM | `NightscoutRemoteCGM` | NightscoutRemoteCGM/NightscoutRemoteCGM/Localizable.xcstrings |
204+
| Pump | `OmniBLE` | OmniBLE/Localizable.xcstrings<br>OmniBLE/OmniBLE/Localizable.xcstrings |
205+
| Pump | `RileyLinkKit` | RileyLinkKit/RileyLink/Localizable.xcstrings<br>RileyLinkKit/RileyLink/LoopKit.xcstrings<br>RileyLinkKit/RileyLinkBLEKit/Localizable.xcstrings<br>RileyLinkKit/RileyLinkKitUI/Localizable.xcstrings |
206+
| Pump | `MinimedKit` | MinimedKit/MinimedKit/Resources/Localizable.xcstrings<br>MinimedKit/MinimedKitUI/Resources/Localizable.xcstrings<br>MinimedKit/MinimedKitUI/Resources/mul.lproj/MinimedPumpManager.xcstrings|
207+
| Pump | `OmniKit` | OmniKit/Localizable.xcstrings<br>OmniKit/OmniKit/Resources/Localizable.xcstrings<br>OmniKit/OmniKitUI/Resources/Localizable.xcstrings |
208+
| Misc | `LoopKit` | LoopKit/LoopKit/Resources/Localizable.xcstrings<br>LoopKit/LoopKitUI/Resources/Localizable.xcstrings<br>LoopKit/LoopKitUI/Resources/mul.lproj/InsulinKit.xcstrings<br>LoopKit/LoopKitUI/Resources/mul.lproj/LegacyInsulinDeliveryTableViewController.xcstrings<br>LoopKit/MockKit/Resources/Localizable.xcstrings<br>LoopKit/MockKitUI/Resources/Localizable.xcstrings |
209+
| Service | `TidepoolService` | TidepoolService/TidepoolServiceKit/Localizable.xcstrings<br>TidepoolService/TidepoolServiceKitUI/Localizable.xcstrings |
210+
211+
These submodules are used by the *Loop*, *Trio* and *iAPS* apps and are handled by *crowdin*.
212+
213+
| Type | <div style="width:145px"></div> Name | Files |
214+
|:-:|:--|:--|
215+
| Pump | `DanaKit` | see [DanaKit *crowdin*](https://crowdin.com/project/danakit) |
216+
| Pump | `MedtrumKit` | see [MedtrumKit *crowdin*](https://crowdin.com/project/medtrumkit) |
217+
| CGM | `EversenseKit` | crowdin project is not yet configured |
218+
219+
The modules are specific to the particular app:
220+
221+
| Type | <div style="width:145px"></div> Name | Files |
222+
|:-:|:--|:--|
223+
| Loop | `Loop` | use [Loop *lokalise*](https://app.lokalise.com/projects) |
224+
| Trio | `Trio` | use [Trio *crowdin*](https://crowdin.com/project/trio) |
225+
| iAPS | `iAPS` | use [iAPS *crowdsin*](https://crowdin.com/project/iaps) |
226+
227+
182228
- - -
183229

184230
## Adding Languages

0 commit comments

Comments
 (0)