Stanislas Signoud (Signez) 0:00 your buttons would explode in a way in your UI. 0:05 So you may have to think about that, but don't freeze about that. 0:10 Don't say, oh, I won't do internationalization until I have, you know, X thousand users. 0:17 You can try simple things first, and I will actually tell you a very useful thing in— sorry, I'm teasing— but about how you can organize your keys, for example. Speaker B 0:31 Oh, there's more. Stanislas Signoud (Signez) 0:33 Oh God, I can't see this. Speaker C 0:40 Hi, thanks for sharing. 0:42 And I'm just here to share more experience. 0:44 Like I had a tiny library just to format numbers. 0:47 Like usually in English people use commas for thousands and a period for decimals. 0:53 I'm Brazilian as well. 0:54 In Brazil we do the opposite for whatever reason. Stanislas Signoud (Signez) 0:56 I said, oh, that's simple. Speaker C 0:58 And then I started a library to do that. 1:00 And it became a massive rabbit hole because the way people represent negative numbers, it changed. 1:07 People group numbers by 3, usually, in English in Brazil. 1:13 But then I found out there are countries that group by 2 digits by digit. 1:18 So it is massive. 1:19 You cannot imagine how difficult it is only for numbers. 1:24 Then you think about a whole atmosphere, a whole community. 1:27 So yeah. 1:29 Anyway, just adding to your question. Speaker D 1:36 Hi, I'm from Japan, and I resonated so much from the talk. 1:45 Thank you so much. 1:46 And I have a question, and I get to say an opinion, so I'll do that. 1:51 My question is, so this is great. 1:54 All here are interested in internationalization. 1:58 Where can we go after we go home? 2:02 Is there a place to ask these questions, or who do we go to? 2:07 Should we make one? 2:12 And then let me say one more thing. 2:14 So Japanese people are very excited about new tools and apps and love to see it in Japanese. 2:23 For sure. 2:24 So if you localize it or make it available for localization, they'll be happy to contribute then. Speaker B 2:33 OK. 2:34 To organize the— well, we can always create some space to help organize stuff. 2:43 People interested in that, we can figure out together where we can do our stuff. 2:50 Stuff. 2:51 We can start by organizing on Blue Sky, or how to— who is interested in helping, who needs help and stuff. 3:01 And then we can evolve, I don't know, like a roomie chat or something else. 3:06 We can always figure out, or if someone else has a good solution to that, it's going to be very cool. 3:15 Let me check now the the screenshot really quickly. 3:22 Yeah, they were talking about like if a word is a metaphor for something technical, a literal translation probably won't work well. 3:32 That's a good point. 3:34 Yeah, a lot of people are talking like caring is the most important part. 3:44 Oh, there is roomies who want to help with organizing, but it's still very work in progress. 3:49 Okay, okay. Stanislas Signoud (Signez) 3:53 Maybe just to add a little thing about that. 3:57 First of all, about a space to talk with each other, I think that a roomie chat or something could be cool, but just so you know, we already have a Discord for the translators of the Blue Sky open source project because we have some time to, you know, to coordinate to ask Samuel for what is this new feature that you are shipping. 4:21 But also about the numbers, because you talked about numbers and dates. 4:27 I won't be able to talk about that in the talk, but please rely on the browser. 4:34 Chrome, Firefox, Safari, they all took a lot of time to do it correctly using what Unicode standards provide, and it will really simply handle everything that you will throw at them. 4:50 Those, I would say, weird— but no offense intended— those strange ways of organizing numbers are actually very well supported by the browser. 5:03 It's the same for dates, you know, writing dates in the right format, i.e., not with month starting with the month, you know. 5:11 And everything like that are actually supported by the browser. Speaker B 5:16 Okay, I have just one last slide to thank you. 5:20 Obrigada, everyone. 5:28 This QR code, this QR code will take you to my Blento with my information. 5:34 I have a link to schedule a meeting online with me if you want. 5:41 I will be available after the conference for that. 5:45 Or if you are in person, you can scan my UME in person. 5:52 But I also have a little Brazilian gift to give you too today. 5:57 So that's it. 5:59 Thank you. 6:00 Obrigada. Stanislas Signoud (Signez) 8:10 One. 8:18 Okay, thank you everyone for being here. 8:25 Hi everyone, thanks for joining me today. 8:30 My name is Stanislas Signeux, but call me Stan. 8:34 I'm also called Signe on the internet, so it's pronounced like this, but Of course, nobody besides language nerds knows how to pronounce those letters. 8:44 So you can simply remember "see me hey" and you correctly pronounce it. 8:51 But call me Stan, it's easier and nobody cares. 8:55 My internet handle, or my AT protocol nickname, is cygne.fr, and I'm cygne everywhere else. 9:02 And there are a lot of, you know, key facts about me, but honestly, everything that you will see on this slide doesn't matter because I'm French, and it's the main thing that you will have to remember about me here. 9:16 And that is also why I won't do so many— that much of eye contact, because I will have to follow my notes because it's a very dense presentation. 9:26 I will try to respect the timing. 9:29 And also, I have a weird accent that you may have noticed that. 9:34 And I will be talking a lot about French from France, which is FRFR, for real, for real. 9:41 And that is key because— I'm sorry for all the Québécois and also the Belgium and Switzerland guys and also all the people from Africa that speak French, a lot of people over there. 9:53 I will not focus about that because I had to crunch it down to only 25, 30, 35 minutes. 10:01 So let's go on. 10:03 I'm here because I'm the main volunteer translator of BlueSky's UI in French. 10:09 Everything on the website, besides user-generated content, of course, is translated in French. 10:14 And that's partly because of my volunteer job that I do early in the morning before taking my croissant with a breakfast and my favorite boulangerie. 10:24 And that is not a joke. 10:25 I actually do that. 10:27 So maybe you are thinking right now that what I do is particularly this— taking BlueSky source code, translating things, and ta-da, BlueSky is available in French. 10:37 Surprise! 10:38 That's not that simple. 10:39 I encountered a lot of little problems, a bunch of anecdotes that can actually help you design better products, I think. 10:48 And simply, if you are just curious about it, learn a little bit of, you know, behind-the-curtain things about how to actually internationalize and localize such a complex app. 11:02 So Here is our roadmap for today. 11:05 And as you can see, I've used some examples of real cases that I've faced besides the joke of the beginning. 11:13 And each time we'll get back to this roadmap, you will learn something that will replace those cases. 11:21 So let's start with the first one. 11:24 It's not poster, it's posté. 11:28 The verb. 11:31 So here is the UI of Bluesky with an equivalent of the example.com situation, a Jerry post. 11:38 And as you may notice on the top of the screen, there is a header that says "post" because what you just have seen is a post. 11:49 Signature is not really— it's sometimes redundant, but it's useful to know. 11:53 And let's say that this very funny post inspired me to write another funny post. 11:59 So I boot up the— I open up the Post Composer. 12:03 And look here on the top right corner. 12:07 A post button. 12:09 Of course, in this context, you know that it's not some header. 12:12 It's just a button. 12:14 And post is written here because we write infinitive form of verbs on top of buttons. 12:22 Or maybe it's Imperative form? 12:24 Yeah, you say "post!" Yeah, make it obvious. 12:28 Whatever. 12:29 So to recap, in English, US, you have those two "posts," but it doesn't actually mean the same. 12:39 They are broadly the same, but they are not the same. 12:41 One is a verb, one is a noun. 12:45 Let's say that I want to translate that in French. 12:48 Now I think that you are coming to what I'm going to. 12:53 So I want to change this to poster, which is the French for to post. 12:59 So I open up Crowdin, and I can see this. 13:03 Of course, it's a very simplified version. 13:05 Oh, there is post, so I will change it to poster. 13:10 When I get back, oh, perfect, poster. 13:13 But as you may have done this yourself, Here is post-it, and that doesn't make any sense. 13:22 So something is broken. 13:23 And to explain why this is happening, I have to talk about internationalization. 13:30 By the way, did you ever notice that there were 18 characters? 13:33 [LAUGHTER] That's why we write it like that everywhere. 13:40 Actually, lots of people don't know that. 13:42 And it's a weird way of doing an acronym. 13:44 But yeah. 13:47 There are two main ways of organizing strings, translations. 13:52 In a project, you can either decide on a reference language— not surprisingly, most of the time it's English— and every word that is shown to the users is directly written in that reference language in the source code. 14:08 And then internationalization libraries and checkouts if there are any translations for those words in the translation file, and swap those. 14:16 But you have also another strategy that is the article in the— idiom fire. 14:23 You got it. 14:25 And basically, you treat all the words shown on the screen as external data that you reference using symbolic keys like those. 14:36 The benefit of this approach is that those identifiers are clear for translators because we have context. 14:44 And you can edit the text shown to users even in your own language. 14:50 So if you want to change what we also call macrocopy, you know, the word that you use for the users, even in English, you can do so without changing the source code, which is something kind of nice. 15:06 And it's also cool because in a thinking way, English is just another language. 15:11 It's not the reference language. 15:13 So that's a cool way to do that. 15:15 But Blue Sky shows the former. 15:18 And honestly, I do understand that because let's be honest, most English-speaking developers just want to iterate very quickly and they just slap the translation after the fact. 15:31 And so Yeah, this should choose the first strategy. 15:34 And it's very common, and obviously it works. 15:39 So— and this is one of the two slides with code on it— we just slap the trans tag into that. 15:50 And like lives, these trans tags matter a lot. 15:54 It's a way for the internationalized library to do its job and go fetch the actual translation for that string here, post. 16:03 So now that you know a little bit more about internationalization, how can we fix this problem? 16:09 Well, actually, it's quite simple. 16:12 And even if we have to do something on the source code, of course. 16:18 We just have to add context tags, basically attaching some context to each of these strings. 16:26 The first one is basically, you know, a standalone noun. 16:29 The second one, an action verb. 16:32 And in the code— the second slide— we simply have to add context equal description, because post is a description of the thing, not an action. 16:42 As soon as we do that, the localization catalog updates, and we have two separate entries. 16:48 And I can simply translate the second one and not the first one. 16:51 and ta-da! 16:53 Everything is translated correctly. 16:56 Success! 16:58 So the things that I want you to remember for this first example is: context is everything. 17:02 Something that we know, but it's important to say again. 17:08 And you have to be ready to hear the demands of your translators to add context tags if you use the first strategy. 17:14 If you use the second, normally you shouldn't have to do that because it's already in the identifier. 17:21 And to their credit, the Bluesky team always accepted our pull requests very quickly to add context tags. 17:28 So that's awesome. 17:30 And I thank them for that. 17:34 So context is everything. 17:36 Let's get to the next one, abonné, with those weird points. 17:43 And you will understand why they are there, the weird dots. 17:50 But first, let me tell you a story that starts with a GitHub issue. 17:57 This GitHub issue created by Fénarin Arsard is quite simple: make the French translation gender-neutral. 18:04 And as I said, the current French translation does not follow the current recommendation for non-sexist and more inclusive French forms. 18:14 To explain what he's talking about, I have to explain a few things about French. 18:19 So please bear with me while I will try to offer you some French 101 lesson. 18:24 I know you understand why it may take a long time. 18:28 This is a hat. 18:32 In French, we would translate it as un chapeau. 18:36 This is a tulip. 18:39 In French, "une tulipe." "Une tulipe." Yeah, did you notice? 18:44 "Une tulipe," it's a feminine word. 18:48 In French, everything is gendered. 18:50 We chose a gender for everything, and there is an asterisk here, but honestly, nearly everything has a gender in French, even for brand new words. 19:00 So some examples of gendered things so you understand the mess that it can become. 19:05 This is a chair. 19:07 It's feminine. 19:09 Une chaise. 19:10 This is a seat. 19:13 It's masculine. 19:14 Un siège. 19:16 This is a shoe. 19:18 It's feminine. 19:20 Une chaussure. 19:21 This is a finger. 19:23 It's masculine. 19:24 It's a finger. 19:25 But it gets even weirder because here is Canada. 19:29 It's masculine for some reason. 19:31 But here is Poland. 19:33 It's feminine for some reason. 19:35 Strength is feminine. 19:40 La force. 19:41 Love is masculine. 19:44 Un amour. 19:44 Ooh la la. 19:46 When I say nearly everything, really I mean it. 19:50 So, gendering is not optional. 19:53 This is a key thing that you have to remember. 19:56 If you say un tulipe, inside a sentence and you are not a beginner or a tourist, that means that we have not switched to the quirks mode, that we will do some extra mile or, you know, extra kilometer as we say, we will offer to correct you even verbally because we will assume that you made an error or we didn't understand you. 20:17 It's like a checksum or CRC. 20:21 So that's not the end of it. 20:25 Here is a big hat. 20:27 Un grand chapeau. 20:29 Here is a big tulip. 20:33 Une grande tulipe. 20:37 In French, we do un accord. 20:40 This. 20:41 That means that we do change the form of the adjectives that comes with the noun. 20:46 By the way, I learned that it was called a cocord in English, but nobody says that, so we don't care. 20:52 'Here are two tulips.' Actually, you do accord in English, but only for the noun. 20:58 And we do it, of course, in French. 21:01 'Here is two big tulips.' So of course, 'deux grandes tulipes.' Both gender and number are used in this accord. 21:12 And it also works with people. 21:15 So we talked a lot about gender of stuff, but of course gender of people also affects the language. 21:21 An old man, un vieil homme. 21:23 Two old men. 21:24 Oh, did you notice you also do an accord with a weird thing? 21:28 It's not only about other languages. 21:30 Deux vieux hommes. 21:34 Two old women, deux vieilles femmes. 21:38 Now that you have all that in mind, let's take a more complex example so you understand the problem that is coming. 21:49 Here is a detective. 21:51 In French, we can translate that to un inspecteur, and the gender is visible because it's un inspecteur. 21:57 Because if it was a female detective, it will be une inspectrice. 22:03 As you can see, une changed, but also inspectrice. 22:08 And that means— oh, by the way, we don't know the gender of the user, so maybe you can deduce the problem that we can have at some point. 22:17 But actually, it's not the actual problem that I'm talking about right now. 22:20 But of course, it happens. 22:22 It also happens. 22:24 When you have two detectives, a duo of detectives, one male detective and a female detective, together we call them two detectives. 22:33 Which gender should we use in French for this group? 22:38 Well, you will have to use the masculine form, "2 inspecteurs." I know. 22:44 But here's a team with 5 detectives, and 4 of them are female detectives. 22:49 How should you translate "5 detectives" in that case? 22:53 Masculine again, "5 inspecteurs." This comes from an old rule we even learn in school, "Le masculin l'emporte." So masculine takes it all. 23:03 As soon as there is one noun, subject, or part of a group that is masculine, we should use the masculine group for the whole group. 23:11 And let's be honest, this rule sucks. 23:13 People try to reason about it, saying that in French, masculine is a neutral form. 23:19 It's a cop-out. 23:20 Always gendering in masculine— in the masculine form, sorry. 23:24 The masculine form blocks some young women from projecting themselves to all domains, can make them feel non-represented, and moreover, that's just unfair in a lot of ways. 23:36 At some point in the 21st century, some people got fed up with that and tried to change things by using something that they called "écriture inclusive," inclusive writing. 23:47 Basically, it's just voluntary using some word, piece of sentences, and tricks to make sure that we stop excluding women from the language. 23:55 So here are two main strategies that we can use to implement écriture inclusive. 24:00 Sorry. 24:01 Either write both masculine and feminine forms every time, in whatever order, by the way, or merge both forms into a same word like this. 24:14 And to do that, you use some points médians, which are basically interpuncts, but nobody say that even in English, which are basically dots that you place in the middle of the vertical height of the line. 24:26 Of course, we could use parentheses, but then you put 50% of the population inside parentheses. 24:31 And so yeah, that's weird. 24:33 So we tend not to do that. 24:37 Écriture inclusive as a linguistic innovation was fringe at first, but as time goes by, it became more and more common use, especially from companies and agencies, because it was easy and an efficient way to making clear that you wanted the situation improving, showing that you cared about the subject of gender inclusivity. 24:56 But then After a few years, I'd say 5 or 6 years of widespread usage, some right-wing people started to ask themselves, you know, this whole culture inclusive thing, isn't this woke? 25:13 I mean, they focused a lot about those points médians form. 25:16 They call it something ugly, weird, decadent, or whatever, and basically created an equal sign between using the points médians and being woke. 25:26 It was bullshit, you know, but it's like that kind of stuff— it's not like this kind of stuff would stop them. 25:32 It's a perfect scapegoat for them. 25:35 So of course they started coming to the Blue Sky repository complaining about using politically-sided language, just because we followed a somewhat common new practice of caring about inclusivity. 25:49 So from there, what should we do? 25:51 Well, actually, I thought about that before they even complained, and I strained myself to mainly use the long way of doing écriture inclusive by both writing the feminine and masculine forms. 26:07 And then, if and only if we have very little room for the transliteration, then at the last resort, using point médian short form. 26:16 And it's what we did for abonné, by the way, the example, the title example that I used. 26:22 But we have some trick up our sleeves to make it better. 26:26 And to be fair, I lied to you. 26:27 I'm sorry. 26:28 By omission, let's say. 26:31 What if there were words that shared the same form in both genders? 26:38 That's why I used detective as an example. 26:40 A detective can also be translated in French as— as "un détective," and a female detective as "une détective." Perfect! 26:51 Those words that can be written the same in both masculine and feminine form are called "episen words," and they are awesome for us because they basically solve the problem in a very nice way. 27:02 However, they don't always exist. 27:04 There are not always synonyms that have this property of being "episen." including abonné, by the way. 27:11 That's why I have to use that. 27:14 So to recap, going forward, when I face this kind of puzzle in my translation work, my policy is to try to find an episteme word, and if I can't find one, then to use the expanded version with both masculine and feminine form, and then, and only when space is missing as a last resort, using the point médian. 27:32 And here we have it. 27:34 And by the way, and this as a conclusion for this part, here is what Dan Abramov, that at that time part of the The Blue Sky team posted before closing that pull request that wanted to revert the work that we did on gender-neutral language. 27:48 It was very validating to see part of the Blue Sky team officially recognizing the work we did, the balance we tried to find by not using the somewhat controversial to the far right new forms where we could, and more of a pragmatic approach I tried to follow. 28:05 So thank you again, Dan and the Blue Sky team, for your support. 28:08 Builders, please support your translators if you are agreeing with their choices. 28:15 Okay. 28:19 Let's get to the fourth point. 28:21 And we have some short time to go on, so it's going way easier now. 28:28 But not easier, but quicker to understand. 28:32 So this, traduit, langue d'origine, English. 28:37 A very quick, only one side, a short French 102 session. 28:43 I assure you it's very, very quick. 28:46 This is the cat. 28:47 It's the cat. 28:50 You would agree, I think. 28:51 It's beautiful. 28:52 And in French, we would say le chat. 28:55 And this is the tree. 28:55 It's such a beautiful tree. 28:57 It's the tree. 28:58 And we would say l'arbre. 29:02 Not "le arbre," "l'arbre." Because "le arbre" would sound weird, we get rid of the "e" and we replace it with a little apostrophe. 29:15 Elision is not optional. 29:16 If you don't do it, we will get back to the same— we'll crash in a way and we'll ask you, "What did you just say?" because we will assume that something went wrong. 29:27 It's like a checksum again. 29:30 So when we get back to translating software, for example, if you have a message like, "New message from Alexandre," in English, it will be translated as "Nouveau message d'Alexandre" in French, and not "Nouveau message de Alexandre." That wouldn't work. 29:48 We are used to software not doing the elision stuff because It's hard to do it properly. 29:57 There are some letters that only trigger the lesion in some cases. 30:00 The H aspiré, if you know French. 30:03 And there are a lot of hardcoded exceptions in the language too. 30:07 So yeah, we love exceptions in French. 30:11 So because of that, internationalization libraries just don't care. 30:16 And there is no standard way of doing it, like with pool or genders. 30:23 So yeah. 30:24 It's perceived as too hard and it's not done. 30:27 So what can we do? 30:28 Well, if I take this actual example from the BlueSky app to translate a string like "translated from English," ideally we would write "traduit depuis l'anglais," but we can't because it's hard to encode that in a translation system. 30:44 So we can't do "traduit depuis le anglais" because it will sound like that, and we can't do "traduit" depuis anglais' either. 30:52 So we have to do workarounds like 'traduit originel en anglais,' literally translated originally in English. 31:00 Or, because 'en' doesn't have this elision stuff, so we don't care, it works. 31:08 Actually, I didn't use that one, but an even clearer one, because in that context it could be a little bit, you know, complex. 31:15 So I use 'traduit langue originelle English, translated source language English. 31:21 Fun fact from this morning, it's an exclusive. 31:25 I wanted to make sure that I quoted my translation correctly, and this morning I tried to find it on Codin, and no, there weren't any translations about that. 31:34 So I took my phone, got one of my English shitposts from a day ago, hit translate, and yeah, in the meantime, Eric, the designer, one of the designers of Blue Sky, changed actually all the wall design, and this string it doesn't exist anymore. 31:48 There is a nice arrow that conveys the message even easier over there. 31:54 So yeah, better. 31:56 Sometimes, you know, design can solve this kind of thing. 31:59 But honestly, I prefer this anyway. 32:00 So it's a good ending in my books. 32:04 Sometimes there are no perfect solutions, only workarounds. 32:06 This is the key thing that I want you to remember. 32:08 We try to do our best, but sometimes, yeah, We can do what we can do. 32:17 OK, my last point is about following, Discover, and For You, et cetera. 32:26 As you may— here is the UI in French. 32:30 So I will dim out all the user-generated content. 32:33 So you can see that nearly everything is translated in French. 32:38 Nearly everything. 32:40 Is translated in French, not those. Speaker B 32:45 Why? Stanislas Signoud (Signez) 32:46 Well, because feed names are not part of our language catalog. 32:51 You could say, oh, but feed names are user-generated. 32:56 Yeah, but you may have noticed that I said before, maybe not if I wasn't following my notes, perceived as user-generated, because users don't always perceive those words as provided by users but part of the product. 33:13 So it's weird that they are not translated. 33:17 We can't translate those ahead of time, and we could use some hacks to find and replace the most popular ones. 33:25 That's something that actually there is an open pull request from Surfduo29 to do exactly that, but it's not a very future-proof way of fixing problem in my opinion. 33:35 So how should we proceed? 33:38 Well, I don't know. 33:41 No, honestly, I don't know. 33:43 Please, dear AT Proton nerds, this is a mission I give you, your homework. 33:48 Please figure this out. 33:50 We have to figure out a solution to that. 33:52 Actually, we were able to do that with labels, moderation labels. 33:57 I've just learned that from Travis from Cartridge that explained that to me yesterday. 34:02 But it wasn't good for feed name. 34:04 It's It's so frustrating because they are a very prominent part of the UI for good reasons. 34:09 It's a very good feature. 34:11 And yeah, it's very frustrating that it's not translatable right now. 34:16 So here we have it. 34:19 Context is everything. 34:20 Support genders and translators. 34:22 Workarounds may be required. 34:23 User content should be translatable as soon as they are not perceived as user content. 34:28 Is that it? 34:31 No, of course not. 34:32 It's not the end of it. 34:33 Translating stuff is only a small part of the equation. 34:36 You should think about localization holistically. 34:40 That's because as an integrated experience, language and region-specific stuff are everywhere. 34:48 And again, we don't expect you to figure it out from day one or to figure it out by yourselves. 34:54 You can't know everything. 34:55 But even— I would say that every given will provide tremendous value to users around the world. 35:07 We talked a lot about what could also be translated in the previous panel, but just to recap, terms and conditions are not translated right now for BlueSky. 35:18 Community guidelines are not translated right now for BlueSky. 35:21 It's kind of weird in a way that we expect users to respect rules they can't even read. 35:26 Training topics are not localized, and one key message that I want to give you is we We don't care about the NFL. 35:33 Stop trying to tell us about the NFL. 35:36 We don't care. 35:36 It's just a weird thing. 35:38 You don't even use football correctly. 35:39 Weird. 35:41 And also blog posts and help pages are not translated right now. 35:46 Discover feed algorithms— Night Heaven did a great leaflet about that— are not localized. 35:53 So you will encounter a lot of content that is not in in your language, and you can— there are some other list systems that are in place, but that's not very— that's a hack, not a proper localization. 36:07 And of course, announcements right now, Blue Sky do not do announcements in any other language than Japanese and English, and that's it. 36:16 That's weird. 36:18 But we talked a little bit about that in the previous panel. 36:21 And here we are. 36:23 Thank you for listening. 36:27 To see my work in action— thanks. 36:34 As a guy said at some point, please clap. 36:37 To see my work in action, you can just go to the settings and change the language to French. 36:42 I also want to thank surfdude29 because this guy simply is an informal translation manager for the whole Bluesky open source project. 36:52 He do it in his spare time, and that's awesome that he do that. 36:56 And also thanks Pippo Montis that helped me figure it out, some stuff on those slides. 37:01 And of course, a big shout out to all the other fellow translators. 37:04 I hope that I didn't say anything weird about your work too. 37:10 And as Stanley Parul said, the end, even ever the end, is never the end about all the things related to translation.