Closed Bug 1092387 (iosl10n) Opened 10 years ago Closed 9 years ago

[META] IOS-7 - L10N - Support localization into a core set of languages (EFIGS)

Categories

(Firefox for iOS :: General, defect, P5)

All
iOS 7
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: bnicholson, Assigned: st3fan)

References

(Depends on 1 open bug)

Details

Before we can jump into all the upcoming iOS work, we need a plan for localization. Some things to figure out:
* How do we reuse strings? For instance, how could we share a string between a storyboard and code to toggle its label? Or how could we use the same string across multiple storyboards?
* What's the process for extracting strings? genstrings?
* Can/should we integrate with the same l10n tools we use for Android for localizers to use? What format must be the strings files be in to use those tools?

After some light experimentation with different options, the most straightforward approach to me would be to exclusively use NSLocalizedString (e.g., extract strings only from code, not storyboards). This solves the reuse problem, and allows us to create our own string bundle-like class to contain all strings. Of course, this limits the usefulness of storyboards/xibs since the strings wouldn't be visible in the GUI.

Alternatively, if the team is interested in storyboards as part of the normal development process, it would useful to see a storyboard-based demo project using localizations, with the above questions answered, so we have a pattern to follow.
Stefan, I think you said you were going to look into this (specifically, figuring out how to share strings between code and storyboards). Any luck?
Flags: needinfo?(sarentz)
I'd really like to get input from Axel and Jeff before we commit to a particular avenue.

I know that there are lots of tools hanging around, and it might be premature to assume that we should take the same .properties/.dtd-style approach that we use for Fennec.

So chaps: what localization mechanism, ending up in-tree (but not necessarily starting there) would work best for you?
Flags: needinfo?(l10n)
Flags: needinfo?(jbeatty)
I'll be on PTO next week, and then I'll need to get back to work and start investigating, so it's probably going to be two weeks or so 'til I can come back with something. Which might just be questions.

Keeping the needinfo around.
Summary: Add localization support to iOS apps → (ios) Add localization support to iOS apps
I'd like to do a little experiment too and rediscover how localization works on iOS. Things have changed a lot since Firefox Home. We used to do things on https://localize.mozilla.org .. at least I think so .. the name Verbatim sounds familiar. I can't find the Home project there anymore though.

That said, I am strongly in favor of:

* Not fighting Apple's tools
* ... yet, integrating with the best localization tool we use at Mozilla
* Using Xcode to manage Storyboards and Xibs for visual layout as much as possible
* ... accept that a likely a *very* small subset of strings may be duplicated and just live with that

I think it will be a mistake to already give up on Storyboards or Xibs completely just based on a possible duplicate strings issue.

(I would rather see us find a balance between those things that absolutely need to be done in code while keeping most high level views in Xibs. It will allow us to more easily design, including for Size Classes and to let the whole team participate in the design process except just those of us who know how to code.)
Flags: needinfo?(sarentz)
While it may not have much overlap with l10n, I do like the idea Brian mentioned about doing more of the UI creation in code. He mentioned a DSL called Masonry that allowed more of the UI constraint logic to be expressed in code rather than through storyboards. I like being able to look at code and understand it, without needing to fire up an IDE and open the right panels.
Stefan, do you have pointers to docs to read when I'm back?
Flagging a needinfo for Stefan exlicitly, it'd be great if you had recommended docs to read for someone that never ever did anything iOS related.
Flags: needinfo?(l10n) → needinfo?(sarentz)
Group: mozilla-employee-confidential
Product: Firefox for Android → Firefox for iOS
Version: Trunk → unspecified
Assigning this to myself. This does not have the highest priotity at the moment but I am working on figuring out all the steps involved to make this as smooth as possible.

Initial notes are in https://github.com/st3fan/LocalizationTest/blob/master/README.md
Assignee: nobody → sarentz
(In reply to Stefan Arentz [:st3fan] from comment #9)
> Initial notes are in
> https://github.com/st3fan/LocalizationTest/blob/master/README.md

Please allow localizing via vcs and don't force verbatim/localize.mozilla.org, pretty please.
Stefan: locamotion.mozilla.org is the Pootle platform used for localization. Verbatim is used for web content.

Many teams use Pootle as their primary translation tool. Some edit native source files they clone from vcs, but the number of those teams working in that fashion is in decline. More and more are moving toward localization tools that enable collaborative work, translation memory, terminology management, and other features. That being said, we will need to accommodate both workflows for the l10n teams to actively participate.

Could you go into more detail about your objections to Pootle for this project?
Flags: needinfo?(jbeatty)
(In reply to Stefan Plewako [:stef] from comment #10)
> (In reply to Stefan Arentz [:st3fan] from comment #9)
> > Initial notes are in
> > https://github.com/st3fan/LocalizationTest/blob/master/README.md
> 
> Please allow localizing via vcs and don't force
> verbatim/localize.mozilla.org, pretty please.

(In reply to Jeff Beatty [:gueroJeff] from comment #11)
> Stefan: locamotion.mozilla.org is the Pootle platform used for localization.
> Verbatim is used for web content.

localize.mozilla.org is explicitly mentioned in initial notes

> Could you go into more detail about your objections to Pootle for this
> project?

I don't think it is the right place to discuss l10n tools pros and cons and I'm not objecting Pootle or any other tool. I'm objecting personal views as a base to force one tool (esp without proper discussion) - ie for pl, the tool that enables collaborative work, translation memory, terminology management, and other features is vcs.
(In reply to Stefan Plewako [:stef] from comment #12)
> (In reply to Stefan Plewako [:stef] from comment #10)
> > (In reply to Stefan Arentz [:st3fan] from comment #9)
> > > Initial notes are in
> > > https://github.com/st3fan/LocalizationTest/blob/master/README.md
> > 
> > Please allow localizing via vcs and don't force
> > verbatim/localize.mozilla.org, pretty please.
> 
> (In reply to Jeff Beatty [:gueroJeff] from comment #11)
> > Stefan: locamotion.mozilla.org is the Pootle platform used for localization.
> > Verbatim is used for web content.
> 
> localize.mozilla.org is explicitly mentioned in initial notes
> 
> > Could you go into more detail about your objections to Pootle for this
> > project?
> 
> I don't think it is the right place to discuss l10n tools pros and cons and
> I'm not objecting Pootle or any other tool. I'm objecting personal views as
> a base to force one tool (esp without proper discussion) - ie for pl, the
> tool that enables collaborative work, translation memory, terminology
> management, and other features is vcs.

We'll continue the policy of keeping toolchains and workflows open.
Summary: (ios) Add localization support to iOS apps → [META] IOS-7 - L10N - Support localization into a core set of languages (EFIGS)
No longer blocks: ios
Priority: -- → P5
Depends on: 1135875
Depends on: 1136215
Depends on: 1136216
Depends on: 1136218
Depends on: 1136220
Alias: iosl10n
Depends on: 1140005
Depends on: 1140007
Depends on: 1140010
Depends on: 1140011
Depends on: 1140022
Depends on: 1140025
Depends on: 1140493
Depends on: fxios-l10n
Depends on: 1146356
Depends on: 1152336
Depends on: 1152340
Depends on: 1151995
Depends on: 1153157
Depends on: 1153310
Depends on: 1153333
Depends on: 1153846
Depends on: 1157241
Depends on: 1157246
Depends on: 1157251
Depends on: 1160467
Depends on: 1162510
Depends on: 1163151
Depends on: 1164604
Depends on: 1168537
Depends on: 1168541
Depends on: 1173015
Depends on: 1175887
Depends on: 1175897
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Depends on: 1179863
Depends on: 1181777
Depends on: 1187360
Depends on: 1188366
Depends on: 1191974
Depends on: 1194380
Depends on: 1183809
Depends on: 1201102
Depends on: 1205015
Depends on: 1206901
Depends on: 1206939
Depends on: 1196949
Depends on: 1210775
Depends on: 1215286
Depends on: 1215930
Depends on: 1216142
Depends on: 1254223
You need to log in before you can comment on or make changes to this bug.