summaryrefslogtreecommitdiffstats
path: root/2022/info/localizing-after.md
blob: bd8b2bbf0023d4b74be0a5888e94172841ad2073 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
<!-- Automatically generated by emacsconf-publish-after-page -->


<a name="localizing-mainVideo-transcript"></a>
# Transcript

[[!template text="""Hello everyone, I am Jean-Christophe Helary,""" start="00:00:00.000" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""I live in Japan, and I'm a translator.""" start="00:00:05.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Here is my second presentation on this very""" start="00:00:09.680" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""prestigious stage that is the Emacs conference.""" start="00:00:12.633" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Following my &quot;Let's Translate the 2 million words""" start="00:00:15.300" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""in the Emacs manual&quot; in 2021, my topic this year,""" start="00:00:18.367" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""always related to translation, is""" start="00:00:21.767" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""pre-localizing Emacs or much less pretentiously,""" start="00:00:25.167" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""&quot;Just make sure that your strings don't mix up plurals&quot;.""" start="00:00:28.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So, for some reason I resumed Emacs use""" start="00:00:31.933" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""around 2016, and as I was rediscovering the thing""" start="00:00:36.133" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""I found really old outline-mode files here""" start="00:00:39.940" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and there on my machine.""" start="00:00:42.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And I started to experiment""" start="00:00:44.033" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""again and write again with Emacs.""" start="00:00:45.140" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""I think that at the time,""" start="00:00:47.167" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""I was coming from Aquamacs and because of""" start="00:00:48.564" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""an integration bug with macOS, I decided""" start="00:00:50.433" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""to check what was going on in the code.""" start="00:00:53.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""That was my first official contribution.""" start="00:00:55.440" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So as I was happily installing and uninstalling""" start="00:00:59.040" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""things, I noticed something weird one day.""" start="00:01:02.233" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Let me enlarge that picture.""" start="00:01:05.267" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""See? And even if I were not a translator,""" start="00:01:09.080" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""I would not like that string, and obviously""" start="00:01:12.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""the same bug bites you when the string""" start="00:01:14.960" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""tells you to erase the package.""" start="00:01:16.833" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Boom, so we agree that we have a problem here.""" start="00:01:20.520" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So, I started to do some spelunking into the code,""" start="00:01:26.720" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and at least that was my feeling""" start="00:01:29.067" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""because I really am not a programmer""" start="00:01:31.067" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""by any stretch of the imagination.""" start="00:01:33.100" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And what I found was an amazing piece of""" start="00:01:37.240" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""natural language engineering that was mixing code""" start="00:01:39.467" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""with English suffixes and all that,""" start="00:01:41.840" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and I could see that the people who had""" start="00:01:44.267" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""written that code were pretty smart,""" start="00:01:46.267" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""but had missed a number of edge cases""" start="00:01:47.767" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""that produced the above bugs.""" start="00:01:49.533" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""That was my first experience with""" start="00:01:51.280" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""all the message related functions,""" start="00:01:53.500" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""&quot;format&quot;, &quot;concat&quot;, &quot;message&quot;, etc.""" start="00:01:55.033" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""But even with my beginner's eyes I could see that""" start="00:01:58.360" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""something was off because when you want""" start="00:02:00.433" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""to produce natural language strings you never ever""" start="00:02:03.040" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""should use &quot;replace-regex-in-string&quot; to""" start="00:02:06.000" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""add an &quot;ing&quot; or an &quot;ed&quot; suffix""" start="00:02:08.600" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""to change the mode of a sentence.""" start="00:02:11.067" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""But that's what I was seeing was happening.""" start="00:02:12.980" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So, what we had to deal with here""" start="00:02:16.840" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""was way more than just a missed plural.""" start="00:02:20.333" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""It was an attempt at engineering all""" start="00:02:22.220" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""the message strings destined to the user""" start="00:02:24.000" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""with the smart code that was making assumptions""" start="00:02:26.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""on the structure of words,""" start="00:02:28.567" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and in the localization world that's a big no-no.""" start="00:02:30.067" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""I'm a translator, and such UI strings issues""" start="00:02:33.220" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""have been sorted out decades ago.""" start="00:02:36.667" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So I was a bit shocked.""" start="00:02:38.433" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""The final patch took me about a year to write,""" start="00:02:41.320" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""because I'm slow, because I needed to verify""" start="00:02:43.533" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and understand a lot, because there are""" start="00:02:45.380" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""plenty of rules and plenty of people who are""" start="00:02:47.167" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""explaining you very nicely what the rules are,""" start="00:02:49.100" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""because I have kids, and because the""" start="00:02:51.433" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Emacs development list is such a cool place to be""" start="00:02:53.733" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""that you often forget why you're there sometimes.""" start="00:02:55.600" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Anyway, for people who can't click on a video,""" start="00:02:58.560" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and I can't either, here are the relevant""" start="00:03:01.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""parts with some short comments.""" start="00:03:03.640" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""I'll be talking with localization in mind,""" start="00:03:05.840" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""knowing full well that Emacs localization""" start="00:03:07.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""is not on the map at the moment.""" start="00:03:09.640" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So first, there is this thing""" start="00:03:12.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""about &quot;format&quot; and &quot;concat&quot;.""" start="00:03:14.167" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And if I remember correctly,""" start="00:03:15.520" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""&quot;format&quot; is better for user-facing things,""" start="00:03:17.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and &quot;concat&quot; is better for internal things.""" start="00:03:20.300" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Here, there are two things.""" start="00:03:25.160" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""First, a rule that we have when we prepare""" start="00:03:26.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""strings that need to be localized is""" start="00:03:28.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""never ever make assumptions on the way""" start="00:03:30.700" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""numbers are expressed in the language.""" start="00:03:33.333" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Here, the assumption is that""" start="00:03:35.780" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""we have either a singular or plural form,""" start="00:03:37.067" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and that's not always the case.""" start="00:03:40.000" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""That usually means that you should externalize""" start="00:03:42.040" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""numbers and find a generic way to express them.""" start="00:03:44.067" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So it makes for slightly less natural""" start="00:03:48.280" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""language strings, but it's better anyway.""" start="00:03:50.833" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Then we have that comma there that's trying""" start="00:03:54.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""to be externalized and that's weird,""" start="00:03:56.667" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""so I put it back into the sentence.""" start="00:03:58.167" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Here we have another construct, or two rather,""" start="00:04:02.620" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""that really should not be used like this.""" start="00:04:04.967" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""It's &quot;prin1&quot; that uses quoting characters,""" start="00:04:06.960" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""just like &quot;print&quot;, and &quot;princ&quot; that does not.""" start="00:04:10.033" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And you see why they were combined together.""" start="00:04:12.480" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And they were both trying to be really smart""" start="00:04:15.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""about which article to put in front of a vowel.""" start="00:04:17.133" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And you just don't do that.""" start="00:04:19.780" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""You just keep things simple.""" start="00:04:20.960" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Here again, the code is trying to be smart,""" start="00:04:25.000" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""but it's really not much more efficient than""" start="00:04:26.633" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""plainly stating what you want.""" start="00:04:28.480" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And here again, we have &quot;concat&quot; things""" start="00:04:34.940" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""that we could just use to plainly state""" start="00:04:36.500" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""what we want to state.""" start="00:04:40.367" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So, instead of &quot;concat&quot; I just put a &quot;message&quot;.""" start="00:04:41.980" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And here we have something that's very cute.""" start="00:04:49.880" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""It's a computerized plural.""" start="00:04:52.260" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Here again, assuming that""" start="00:04:54.540" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""there are only plural or singular forms.""" start="00:04:55.700" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""But the end string is not that much more natural""" start="00:04:58.640" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""than the fix, the code is less efficient""" start="00:05:00.867" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and is harder to understand.""" start="00:05:02.700" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Here again, the code is trying to make""" start="00:05:07.760" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""smart things where it could be much simpler.""" start="00:05:09.433" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""That is the part where you get the""" start="00:05:13.520" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""number of packages and their names.""" start="00:05:14.667" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Here the whole sentence with the semicolons""" start="00:05:19.480" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and the question mark is split in parts,""" start="00:05:22.067" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""between which something will be inserted.""" start="00:05:26.333" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""That's really ugly and difficult to read.""" start="00:05:29.180" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Here again, another &quot;ing&quot; waiting to be""" start="00:05:34.240" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""regex-inserted into the code.""" start="00:05:37.700" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And here at last, we get to the point""" start="00:05:44.840" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""where everything started.""" start="00:05:46.633" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And you can see that unlike in the other spots,""" start="00:05:48.760" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""there is no possibility for the expression""" start="00:05:50.833" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""to be singular.""" start="00:05:52.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So, I guess that if it hadn't been for that bug,""" start="00:05:54.680" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""I would not have found the other items,""" start="00:05:57.600" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and we would be left with code that works,""" start="00:05:59.320" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""of course, but that is""" start="00:06:01.033" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""harder to understand, and maintain.""" start="00:06:02.033" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Last but not least, a last version of""" start="00:06:06.020" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""&quot;just plainly state what you mean to state&quot;.""" start="00:06:08.333" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Keep it simple.""" start="00:06:10.920" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So first, we have this wonderful CONTRIBUTE file""" start="00:06:14.880" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""that is very explicit about""" start="00:06:19.267" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""how we must proceed when contributing code.""" start="00:06:21.267" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So, that's really the first place""" start="00:06:23.520" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""that we should all read.""" start="00:06:25.233" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""The README file is pretty cool too,""" start="00:06:27.760" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""especially at the beginning of the process,""" start="00:06:29.333" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""when you're not sure whether""" start="00:06:30.967" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""you want to fix that bug or just report it.""" start="00:06:31.867" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And then we've got packages.""" start="00:06:36.240" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""We've got a number of packages that are really""" start="00:06:37.920" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""helpful when it comes to reading""" start="00:06:39.900" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""the information and the manuals.""" start="00:06:42.600" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""I'm mentioning three of them here,""" start="00:06:45.880" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and I think they are the most important for us.""" start="00:06:48.000" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So &quot;helpful&quot; is on the right,""" start="00:06:53.720" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and it's overflowing the window with""" start="00:06:55.600" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""all the contextualized information it provides,""" start="00:06:58.667" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and the standard &quot;help&quot; is on the left.""" start="00:07:01.900" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""I mean, really there are like two or three""" start="00:07:05.280" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""screen-full of information in the &quot;helpful&quot; output,""" start="00:07:07.933" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""so you really only see a part,""" start="00:07:11.567" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""but I guess if you use it, you know what I'm saying.""" start="00:07:13.233" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""What I like the most here is the &quot;view in manual&quot;""" start="00:07:16.320" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""part, where you can actually click and even get""" start="00:07:18.867" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""more information that's sometimes""" start="00:07:21.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""easier to read and understand.""" start="00:07:23.667" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And then you've got the &quot;info&quot; versus &quot;inform&quot; formats.""" start="00:07:28.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""When you're in the manual,""" start="00:07:33.640" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""&quot;inform&quot; makes a huge difference.""" start="00:07:34.567" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""You can see here that you've got colorized items,""" start="00:07:37.140" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and also in the middle you've got that""" start="00:07:39.367" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""'read' part that's green and bold.""" start="00:07:42.000" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""In &quot;info&quot; it's not a specific object,""" start="00:07:45.000" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""it's just a string. In 'inform' it's actually""" start="00:07:49.333" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""a link that you can click,""" start="00:07:52.200" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and actually go to that 'read' manual page.""" start="00:07:53.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Now, we've got &quot;which-key&quot;.""" start="00:07:58.320" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""&quot;which-key&quot; is a savior for beginners too.""" start="00:08:01.300" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Just wait half a second or something,""" start="00:08:03.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and Emacs will show you all the keys""" start="00:08:04.867" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""that you can access from the prefix combination""" start="00:08:06.500" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""that you just typed.""" start="00:08:08.433" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So, it's really helpful for discovering functions""" start="00:08:09.920" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and learning new functions, getting used to them.""" start="00:08:13.200" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And so that whole process started…,""" start="00:08:19.160" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""it was May 23, 2017,""" start="00:08:21.500" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""with that thread when I found the bug.""" start="00:08:26.533" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""I just bumped into an English/code bug""" start="00:08:30.440" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""this morning. In package.el, when one package""" start="00:08:32.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""is not needed anymore, the message is:""" start="00:08:36.920" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""&quot;Package menu: Operation finished.""" start="00:08:39.033" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""1 packages are no longer needed&quot;, etc.""" start="00:08:41.300" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So, I was asking whether we had best practices""" start="00:08:44.880" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""for using messages, and we had a whole thread""" start="00:08:49.633" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""about that. And while I was discussing on that""" start="00:08:53.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""thread, I started that new thread, which is:""" start="00:08:57.867" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""&quot;package.el strings&quot;.""" start="00:09:01.240" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""The whole thing actually ended on June 27, 2018.""" start="00:09:02.867" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So, a year after, with that message from Noam""" start="00:09:09.900" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""telling me that &quot;Yes I can close the bug,&quot;""" start="00:09:15.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and that was it.""" start="00:09:18.567" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So, it took about a year to finish that.""" start="00:09:22.040" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""What I did learn basically is that""" start="00:09:24.000" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""helping with Emacs is not that difficult.""" start="00:09:28.133" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""It takes time when you're not fluent with the code,""" start="00:09:32.160" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""but that's okay because the reference""" start="00:09:36.100" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""is excellent, and there are lots of people""" start="00:09:37.100" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""who are here to help.""" start="00:09:39.300" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Basically, the solution to all our problems is""" start="00:09:41.520" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""&quot;Keep It Simple and Straightforward&quot;.""" start="00:09:45.700" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""As you can see in that patch,""" start="00:09:47.733" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""even if it's a beginner's patch,""" start="00:09:51.033" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""what I did shows what can be done by Emacs Lisp""" start="00:09:53.233" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""beginners to help with &quot;straightening&quot; the strings""" start="00:09:57.733" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""to reduce the number of potential English bugs.""" start="00:09:59.533" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And then to make Emacs strings easier""" start="00:10:02.267" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""to be handled by real localization processes one day.""" start="00:10:04.533" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""But it doesn't have to be about strings""" start="00:10:07.233" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""because strings can be an easy entry point to Emacs,""" start="00:10:09.067" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""but it can be any itch that you want to scratch.""" start="00:10:12.767" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And my real conclusion is that""" start="00:10:16.720" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Emacs is free software, and what that means is mostly""" start="00:10:18.267" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""that it allows you to do things that you would""" start="00:10:22.160" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""never have thought of being able to do before.""" start="00:10:24.067" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""That's really the biggest lesson to be learned here.""" start="00:10:27.920" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""So, I want to thank all the people""" start="00:10:32.000" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""who allowed this to be happening, allowed me to""" start="00:10:33.400" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""learn a bit and contribute a bit to that wonderful""" start="00:10:37.920" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""piece of software that Emacs is.""" start="00:10:41.267" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""And thank you everyone for listening,""" start="00:10:42.800" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""and hopefully I'll see you next year""" start="00:10:44.533" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""with a different translation related presentation.""" start="00:10:46.700" video="mainVideo-localizing" id="subtitle"]]
[[!template text="""Thank you very much.""" start="00:10:51.520" video="mainVideo-localizing" id="subtitle"]]



Captioner: jean-christophe

Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20localizing%3A%20Pre-localizing%20Emacs)


<!-- End of emacsconf-publish-after-page -->