Localize your project wirh ease: WEBLATE
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Alternative Title |
| |
Title of Series | ||
Number of Parts | 490 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/46874 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 2020183 / 490
4
7
9
10
14
15
16
25
26
29
31
33
34
35
37
40
41
42
43
45
46
47
50
51
52
53
54
58
60
64
65
66
67
70
71
72
74
75
76
77
78
82
83
84
86
89
90
93
94
95
96
98
100
101
105
106
109
110
116
118
123
124
130
135
137
141
142
144
146
151
154
157
159
164
166
167
169
172
174
178
182
184
185
186
187
189
190
191
192
193
194
195
200
202
203
204
205
206
207
208
211
212
214
218
222
225
228
230
232
233
235
236
240
242
244
249
250
251
253
254
258
261
262
266
267
268
271
273
274
275
278
280
281
282
283
284
285
286
288
289
290
291
293
295
296
297
298
301
302
303
305
306
307
310
311
315
317
318
319
328
333
350
353
354
356
359
360
361
370
372
373
374
375
379
380
381
383
385
386
387
388
391
393
394
395
397
398
399
401
409
410
411
414
420
421
422
423
424
425
427
429
430
434
438
439
444
449
450
454
457
458
459
460
461
464
465
466
468
469
470
471
472
480
484
486
487
489
490
00:00
Computing platformInternationalization and localizationUsabilityWeb 2.0Projective planeAuthorizationComputer virusLocal ringComputer programmingUMLComputer animation
00:29
Internationalization and localizationSoftware frameworkSoftwareContext awarenessInterface (computing)Vapor barrierError messageInheritance (object-oriented programming)FreewareLink (knot theory)Matching (graph theory)Endliche ModelltheoriePosition operatorGoodness of fitMachine visionFigurate numberFamilyGoogolWindowLevel (video gaming)BitGroup actionUniform resource locatorMultiplication signDigital photographyMetropolitan area networkGodProcess (computing)WebsiteData conversionCausalityLocal ringArithmetic meanAdditionComplex (psychology)Image resolutionEmailBuildingBuffer overflowSheaf (mathematics)Translation (relic)Context awarenessInterface (computing)INTEGRALMereologySoftware frameworkInternationalization and localizationDifferent (Kate Ryan album)Internet service providerRevision controlWordAxiom of choiceKeyboard shortcutSoftware developerSimilarity (geometry)Degree (graph theory)Web pageMarkup languageString (computer science)Web applicationLengthSoftwareService (economics)Medical imagingSelf-organizationProgramming languageFile formatSpacetimeInstance (computer science)InformationComputer animation
07:18
Projective planeFile formatSoftware repositorySet (mathematics)Repository (publishing)Internationalization and localizationComputer fileDemo (music)Axiom of choiceDifferent (Kate Ryan album)BuildingComputer animation
08:01
Formal languageProjective planeInformationString (computer science)Revision controlSource codeWebsiteMereologyConfiguration spaceRight angleTranslation (relic)User interfaceMathematicsTerm (mathematics)Arithmetic progressionGraph coloringState of matterProgramming languageInterface (computing)1 (number)Context awarenessLattice (order)CoalitionWindowAdditionFigurate numberGoodness of fitComputer animation
10:15
Translation (relic)CuboidPrice indexRight angleSource codeUsabilityPhysical lawStudent's t-testComputer animation
10:55
Programming languageTranslation (relic)Markup languageFormal languageBitFree variables and bound variablesInterface (computing)State of matterWeb 2.0Multiplication signIntegrated development environmentMobile appMathematicsDemo (music)CodeData storage deviceAndroid (robot)Logische ProgrammierspracheService (economics)Line (geometry)Different (Kate Ryan album)Computer programmingFile formatText editorWindowBuildingLocal ringFigurate numberOnline helpRule of inferenceMachine visionComputer animation
15:57
FacebookPoint cloudOpen source
Transcript: English(auto-generated)
00:08
OK. So let's go ahead and get started on the next one. This is Michel, and he's going to talk about the web lead. I'm saying that, right? Yeah. Go ahead. Thank you. Hello. I'm Nikak Shah, and I'm author of two programs which can help you with localizing the software,
00:24
or not only software, but any kind of project that might be used for localization. Maybe let's start from the beginning. Do you know what localization and internationalization is? Yes.
00:42
There are two things of the process. One part of the process is to make software that is possible of using in different languages. That's called modern authorization, or the short one with 18 in between because it is wrong, and it has to run together.
01:01
And the other part of the process is localization, which actually does the translation itself of the software. So you need to pick a software product, and then you can use some tooling to make it possible. There are a lot of frameworks made possible
01:22
to localize, and the way it tries to be framework agnostic. So whatever you use on your platform, be it Android application, which has native software for localization, or IO strings, or web app extension, localization, or get text,
01:41
the data can use all of that. But we need people to do the localization. And working with the people is sometimes hard because they have different knowledge, different backgrounds, and you need to make it easier for them to contribute,
02:03
especially if you are focusing on languages which are not that widely used. There are minor communities, and you will not find technically skilled people to contribute to the translations. And at the same time, it's needed to provide translators context so that they
02:23
know what they are translating. There are a lot of words which can have different meanings depending on the context. The favorite example is the name of the poster style, which is a sum. If you just look at the text,
02:40
you will probably figure out this name. But if you will just slowly see these three letters, it can be as well a shortcut for a Sunday. And if you don't know where this thing is being used, you will miss it out in the translation because it's not that easy to figure out just from this thing. So that's something where tools should
03:02
make it easier to contribute to us. At WAA, we have made, in the beginning, one design choice. We will use the interface to make the localization really easy for everybody to contribute.
03:22
That means that translators don't have to care what's underneath. They don't have to care that there is some Git version control and there is pull requests being opened with the translations and whatever the developers actually would like to have. So it's done on the tooling side and WebPipe tries to hide as much as possible
03:44
from the translators. The other thing we have decided is the version control integration. That was one of the main reasons why WebPipe actually started in the beginning because there was no other localization thing
04:01
where you integrate with the version control system and there might be some options possible but in that time it was the only one and we started with simple integration that when somebody edited a single string
04:23
it made a commit and that led to thousands of commits and it wasn't working well. So over the years we have developed something which works more clever and tries to do commits only when needed and can do pull requests with GitHub and similar additions.
04:43
I've already mentioned about context. One of the things which might be useful is just describe where this thing is used. That helps in the thing like the star in Sunday I mentioned before but there might be
05:01
more useful things to learn. For example, if you look at the screenshot context then even if the people are not that technical skill they can see where this thing is used they can see other buttons on the page and can understand what is being used.
05:22
But still, people don't make mistakes and the tool should be able to figure out that they have made some mistakes that are easy to fix or easy to spot. So we have some kind of quality checks and these are focused on
05:43
things which are to some degree certainly detectable so that we don't annoy people that much it's like missing from our strings a broken HTML markup or similar topics or things which are actually enforced
06:01
from the localization from the developer side like length of the string or space in which it should be rendered. And not everybody fits the same workflow so in the end we have came up with
06:21
add-ons to customize the workflow it can help you it can make you change where the localization format is stored or you can customize how you accept the translations you can have some review process you can have broad info suggestions all these minor
06:42
the tools that make possible to work within different scenarios and how can you start without using WebRite you can start your own instance it's just Docker image which you can start with Docker Compose and get it in
07:01
quite fast you can use also our listed service which is pretty good software or if you are looking for some commercial organization you can do that as well and let's take a quick look how it looks like I hope this feature will work fine
07:25
when creating a project basically the most important thing you need to define is software repository but they don't connect to that it will present you a set of localizable files which are found
07:40
in the repository so we have some choices here there are some underutilization it's our demo project it's not probably something that anyone will see but they just don't have some more choices so it has different file formats detected where the files are stored
08:00
and when you imported a shop in the interface you can see the status of individual translations into individual languages so we can see the only complete language is source language which is English that's because we always track all source things
08:21
as well that's quite recent change if you are looking at older versions before it was not present but it was taken underneath NMR and now it's just more visible and for the older versions you can see
08:53
some colorful progress bars which indicate different states of the string the green one is translated then there are some things
09:00
needing actually or they are ones that indicate some house checks you can look into some of the term cited string or actually not term cited string you can see the quite simple user interface the most important thing is you can enter the term cited string and you can see
09:21
other information which the website has figured out about the string this is the way the project was imported from the PO files so you don't see much additional information here which translation part is there the whole way was
09:41
extracted by the text and you can see you can add screenshots add some additional context here and there is a ghost right on top which is also what you can see right now the other thing which we have is quality checks this is again, it was imported
10:01
so it's things which are built in and don't need any configuration and there are some things which can be configured as well so the most interesting thing is the fighting for marks thing it's the check that indicates that
10:20
the translation is missing from marks thing you can see it's highlighted in the source and it's missing from the check translation so that indicates some similar problem in the translation it's highlighted like this it's listed in the things to check on the right side box so that it's
10:41
real visible and you can dismiss it if you think it's false positive actually you can fix that there is also an indication that the person is missing in this thing here that's pretty much all I wanted to show
11:01
in this short demo if you want to figure out more there will be a longer talk later today at 5pm in coding for language communities I will go in more detail on that if you want to chat with us in a less formal way, you can join us
11:21
for a beer today evening and there is also a website both tomorrow and lunch where we will discuss with logic using WebLite and going into more details about how we want to develop WebLite later on
11:40
so thanks for your attention and do you have any questions?
12:11
thank you for your talk can you quickly say how are you dealing with C data and xLif
12:20
any annotations or like that is used in Android? xLif and Android are quite different beefs with Android the thing is that it doesn't the format itself isn't well defined behavior in
12:41
XML so whenever there is some markup it tries to use it as a markup but if it's not a live markup then it still does something but we try to display the markup as is for the translation so that people can do the original thing
13:00
which was intended the XML thing it will xLif support the xLif placeholders and they are imported as XML and shown as XML in the interface and C data is
13:21
is not probably a bit counted so it's not passed as data and I'm saying I don't think we will I guess we have time for one more
13:48
I would like to break the web data into our build workflow and
14:01
are there some API that can be called to state web data or from web data to our GenQ environment is this full by the side of the translations
14:21
we have web data has API so it can control most of the things it's not yet complete that it will be able to do all the things which we are able to do in the UI but most of the things can be done on the API you can also use some webhooks notifications to let the
14:41
plate know that there are some changes in your App Store we have support for most of the code and things services and for letting the other side know that's currently almost a code program things like WordPress are pushing to get repository
15:01
directly but we don't have any outside folks right now but you can always write your add-ons to integrate with just few lines of Python and you can do your customizations so there's a way when
15:21
for example an editor approves the translation or something else the translations to say to the CIA or whatever the translations are done correctly yeah, that's it it has to be integrated with all the items
15:42
okay, thank you you're welcome