From a6d7721b8024c1b2c1fceaf8a6cc91770857bf74 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sat, 27 Nov 2021 09:59:57 -0500 Subject: Update --- ...on-and-omegat--jean-christophe-helary--main.vtt | 892 +++++++++++++++++++++ ...and-omegat--jean-christophe-helary--main_fr.vtt | 892 +++++++++++++++++++++ ...and-omegat--jean-christophe-helary--main_ja.vtt | 892 +++++++++++++++++++++ 3 files changed, 2676 insertions(+) create mode 100644 2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main.vtt create mode 100644 2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main_fr.vtt create mode 100644 2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main_ja.vtt (limited to '2021/captions') diff --git a/2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main.vtt b/2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main.vtt new file mode 100644 index 00000000..34cfbcad --- /dev/null +++ b/2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main.vtt @@ -0,0 +1,892 @@ +WEBVTT + +00:01.280 --> 00:00:02.560 +Hello everybody. + +00:02.560 --> 00:00:04.400 +My name is Jean-Christophe Helary, + +00:00:04.400 --> 00:00:05.680 +and today I’m going to talk about + +00:00:05.680 --> 00:00:08.320 +Emacs manuals translation and OmegaT. + +00:00:08.320 --> 00:00:10.960 +Thank you for joining the session. + +00:10.960 --> 00:00:12.880 +Translation in the free software world + +00:12.880 --> 00:00:15.040 +is really a big thing. You already know + +00:15.040 --> 00:00:17.119 +that most of the Linux distributions, + +00:17.119 --> 00:00:18.720 +most of the software packages, + +00:00:18.720 --> 00:00:19.920 +most of the websites + +00:00:19.920 --> 00:00:22.320 +are translated by dozens of communities + +00:00:22.320 --> 00:00:23.439 +using different processes + +00:23.439 --> 00:00:24.880 +and file formats. + +00:24.880 --> 00:00:27.359 +Translation and localization + +00:27.359 --> 00:00:29.599 +are things we know very well. + +00:29.599 --> 00:00:30.400 +It’s a tad different + +00:00:30.400 --> 00:00:32.160 +for the Emacs community. + +00:32.160 --> 00:00:34.079 +We do not have a localization process + +00:34.079 --> 00:00:35.200 +because it’s quite complex + +00:00:35.200 --> 00:00:35.920 +and because we don’t + +00:00:35.920 --> 00:00:37.600 +have the resources yet. + +00:37.600 --> 00:00:39.920 +Still, we could translate the manuals, + +00:00:39.920 --> 00:00:41.200 +and translating the manuals + +00:00:41.200 --> 00:00:42.399 +would probably bring a lot of good + +00:00:42.399 --> 00:00:45.600 +to the Emacs community at large. + +00:45.600 --> 00:00:47.920 +So what’s the state of the manuals? + +00:47.920 --> 00:00:51.199 +As of today, we have 182 files + +00:51.199 --> 00:00:54.160 +coming in .texi and .org format. + +00:54.160 --> 00:00:56.559 +We’ve got more than 2 million words. + +00:56.559 --> 00:00:57.360 +We’ve got more than + +00:00:57.360 --> 00:00:59.039 +50 million characters. + +00:00:59.039 --> 00:01:00.559 +So that’s quite a lot of work, + +01:00.559 --> 00:01:04.559 +and obviously, it’s not a one person job. + +01:04.559 --> 00:01:06.159 +When we open .texi files, + +00:01:06.159 --> 00:01:07.760 +what do we have? + +01:07.760 --> 00:01:09.439 +Well, we actually have a lot of things + +01:09.439 --> 00:01:10.560 +that the translators + +00:01:10.560 --> 00:01:12.400 +shouldn’t have to translate. + +01:12.400 --> 00:01:13.680 +Here we can see that only + +00:01:13.680 --> 00:01:15.040 +the very last segment, + +00:01:15.040 --> 00:01:16.400 +the very last sentence + +00:01:16.400 --> 00:01:18.080 +should be translated. + +01:18.080 --> 00:01:19.360 +All those meta things + +00:01:19.360 --> 00:01:20.240 +should not be under + +00:01:20.240 --> 00:01:24.479 +the translator’s eyes. + +01:24.479 --> 00:01:26.720 +How do we deal with this situation? + +01:26.720 --> 00:01:27.680 +For code files, we have + +00:01:27.680 --> 00:01:29.360 +the gettext utility that converts + +00:01:29.360 --> 00:01:30.640 +all the translatable strings + +00:01:30.640 --> 00:01:32.079 +into a translatable format, + +00:01:32.079 --> 00:01:33.840 +which is the .po format. + +01:33.840 --> 00:01:35.520 +And that .po format is ubiquitous, + +00:01:35.520 --> 00:01:36.400 +even in the non-free + +00:01:36.400 --> 00:01:38.720 +software translation industry. + +01:38.720 --> 00:01:39.520 +For documentation, + +00:01:39.520 --> 00:01:40.720 +we have something different. + +00:01:40.720 --> 00:01:42.000 +It’s called po4a, + +00:01:42.000 --> 00:01:45.119 +which is short for ‘po for all’. + +01:45.119 --> 00:01:46.399 +When we use po4a + +00:01:46.399 --> 00:01:49.200 +on those 182 .texi and .org files, + +00:01:49.200 --> 00:01:50.479 +what do we get? + +01:50.479 --> 00:01:52.640 +We get something that’s much better. + +01:52.640 --> 00:01:54.799 +Now we have three segments. + +01:54.799 --> 00:01:55.759 +It’s not perfect because, + +00:01:55.759 --> 00:01:56.399 +as you can see, + +00:01:56.399 --> 00:01:57.280 +the two first segments + +00:01:57.280 --> 00:01:58.880 +should not be translated. + +01:58.880 --> 00:01:59.520 +So there’s still + +00:01:59.520 --> 00:02:02.479 +room for improvement. + +02:02.479 --> 00:02:04.960 +Now, when we put that file set + +00:02:04.960 --> 00:02:07.119 +into OmegaT, we considerably reduce + +00:02:07.119 --> 00:02:08.800 +the words total. + +02:08.800 --> 00:02:11.360 +We now have 50% fewer words + +00:02:11.360 --> 00:02:14.239 +and 23% fewer characters to type, + +02:14.239 --> 00:02:15.680 +but that’s still a lot of work. + +00:02:15.680 --> 00:02:17.599 +So let’s talk about OmegaT now + +00:02:17.599 --> 00:02:22.239 +and see where it can help. + +02:22.239 --> 00:02:25.440 +OmegaT is a GPL3+ Java8+ + +02:25.440 --> 00:02:27.599 +Computer Aided Translation tool. + +02:27.599 --> 00:02:29.440 +We call them CATs. + +02:29.440 --> 00:02:30.720 +CATs are to translators + +00:02:30.720 --> 00:02:33.280 +what IDEs are to programmers. + +02:33.280 --> 00:02:35.040 +They leverage the power of computers + +00:02:35.040 --> 00:02:36.480 +to automate our work, + +00:02:36.480 --> 00:02:38.400 +which is, reference searches, + +00:02:38.400 --> 00:02:40.800 +fuzzy matching, automatic insertions, + +00:02:40.800 --> 00:02:44.080 +and things like that. + +02:44.080 --> 00:02:46.319 +OmegaT is not really recent. + +02:46.319 --> 00:02:48.319 +It will turn 20 next year, + +02:48.319 --> 00:02:48.959 +and at this point, + +00:02:48.959 --> 00:02:51.440 +we have about 1.5 million downloads + +00:02:51.440 --> 00:02:53.200 +from the SourceForge site, + +00:02:53.200 --> 00:02:54.080 +which doesn’t mean much + +00:02:54.080 --> 00:02:55.040 +because that includes + +00:02:55.040 --> 00:02:56.480 +files used for localization + +00:02:56.480 --> 00:02:57.920 +and manuals, but still + +00:02:57.920 --> 00:02:59.599 +it’s a pretty big number. + +02:59.599 --> 00:03:00.720 +OmegaT is included in + +00:03:00.720 --> 00:03:02.400 +a lot of Linux distributions, + +00:03:02.400 --> 00:03:03.680 +but as you can see here, + +03:03.680 --> 00:03:05.920 +it’s mostly downloaded on Windows systems + +00:03:05.920 --> 00:03:06.800 +because translators + +00:03:06.800 --> 00:03:09.680 +mostly work on Windows. + +03:09.680 --> 00:03:11.120 +OmegaT comes with a cool logo + +00:03:11.120 --> 00:03:12.080 +and a cool site too, + +00:03:12.080 --> 00:03:13.920 +and I really invite you to visit it. + +00:03:13.920 --> 00:03:16.159 +It’s omegat.org, and you’ll see + +03:16.159 --> 00:03:17.280 +all the information you need, + +00:03:17.280 --> 00:03:19.040 +plus downloads to Linux versions, + +00:03:19.040 --> 00:03:22.080 +with or without Java included. + +03:22.080 --> 00:03:24.799 +So what does OmegaT bring to the game? + +03:24.799 --> 00:03:26.560 +Professional translators have to deliver + +03:26.560 --> 00:03:27.680 +fast, consistent, + +00:03:27.680 --> 00:03:29.519 +and quality translations, + +03:29.519 --> 00:03:30.720 +and we need to have proper tools + +00:03:30.720 --> 00:03:32.159 +to achieve that. + +00:03:32.159 --> 00:03:34.239 +I wish po-mode was part of the toolbox, + +00:03:34.239 --> 00:03:35.120 +but that’s not the case, + +03:35.120 --> 00:03:36.560 +and it’s a pity. + +03:36.560 --> 00:03:39.760 +So we have to use those CAT tools. + +03:39.760 --> 00:03:41.440 +Let me show you what OmegaT looks like + +03:41.440 --> 00:03:43.120 +when I open this project that I created + +03:43.120 --> 00:03:45.200 +for this demonstration. + +03:45.200 --> 00:03:46.640 +The display is quite a mouthful, + +00:03:46.640 --> 00:03:47.760 +but you can actually modify + +00:03:47.760 --> 00:03:49.519 +all windows as needed. + +03:49.519 --> 00:03:50.400 +I just want to show you + +00:03:50.400 --> 00:03:51.120 +everything at once + +00:03:51.120 --> 00:03:53.680 +to give you a quick idea of the thing. + +03:53.680 --> 00:03:55.200 +You have various colors, windows, + +00:03:55.200 --> 00:03:55.920 +and all those spaces + +00:03:55.920 --> 00:03:57.120 +have different functions + +03:57.120 --> 00:03:58.560 +that help the translator, + +00:03:58.560 --> 00:03:59.360 +and that you’re probably + +00:03:59.360 --> 00:04:02.879 +not familiar with. + +04:02.879 --> 00:04:04.080 +I’m going to introduce you + +00:04:04.080 --> 00:04:05.680 +to the interface now. + +04:05.680 --> 00:04:07.519 +So first, we have the editor. + +04:07.519 --> 00:04:09.439 +The editor comes in two parts: + +04:09.439 --> 00:04:10.480 +the current segment, + +00:04:10.480 --> 00:04:12.319 +which is associated to a number, + +00:04:12.319 --> 00:04:13.519 +and all the other segments, + +00:04:13.519 --> 00:04:15.840 +above or below. + +04:15.840 --> 00:04:16.720 +At the top of the window, + +00:04:16.720 --> 00:04:18.720 +you can see the first three segments + +00:04:18.720 --> 00:04:20.799 +that were in the .po file. + +04:20.799 --> 00:04:22.880 +The last one here, the fourth one, comes + +00:04:22.880 --> 00:04:28.720 +with an automatic fuzzy match insertion. + +04:28.720 --> 00:04:30.880 +Such legacy translations are what we + +04:30.880 --> 00:04:32.720 +call ‘translation memories’. + +04:32.720 --> 00:04:35.280 +OmegaT has inserted this one automatically + +00:04:35.280 --> 00:04:37.120 +because I told it to do so, + +04:37.120 --> 00:04:38.560 +and for my security, it comes with + +00:04:38.560 --> 00:04:40.639 +the predefined fuzzy prefix + +00:04:40.639 --> 00:04:41.919 +that I will have to remove + +00:04:41.919 --> 00:04:44.880 +to validate the translation. + +04:44.880 --> 00:04:47.919 +Our next feature is the glossary feature. + +04:47.919 --> 00:04:48.479 +In this project, + +00:04:48.479 --> 00:04:50.160 +we have a lot of glossary data. + +00:04:50.160 --> 00:04:52.560 +Some is relevant and some is not. + +04:52.560 --> 00:04:53.919 +In the segment that I’m translating + +00:04:53.919 --> 00:04:55.199 +at the moment, you can see + +00:04:55.199 --> 00:04:57.520 +underlined items. + +04:57.520 --> 00:04:59.040 +This pop-up menu on the right + +00:04:59.040 --> 00:05:02.240 +allows me to enter the terms as I type. + +05:02.240 --> 00:05:04.639 +It’s kind of an auto insertion system + +00:05:04.639 --> 00:05:07.039 +that also supports history predictions, + +00:05:07.039 --> 00:05:14.479 +predefined strings, and things like that. + +05:14.479 --> 00:05:15.440 +In the part on the right, + +00:05:15.440 --> 00:05:17.120 +we have reference information + +00:05:17.120 --> 00:05:18.240 +that comes directly from + +00:05:18.240 --> 00:05:21.440 +the .po and .texi files. + +05:21.440 --> 00:05:23.440 +We also have notes that I can share + +00:05:23.440 --> 00:05:25.759 +with fellow translators, + +05:25.759 --> 00:05:28.080 +and we have numbers that tell me + +00:05:28.080 --> 00:05:31.199 +that I still have 143 000 segments more to go + +00:05:31.199 --> 00:05:35.280 +before I complete this translation. + +05:35.280 --> 00:05:37.120 +As we see, there are plenty of strings + +05:37.120 --> 00:05:40.000 +that we really don’t want to have to type. + +05:40.000 --> 00:05:42.160 +For example, those strings + +00:05:42.160 --> 00:05:43.840 +are typical .texi strings + +00:05:43.840 --> 00:05:45.039 +that the translator + +00:05:45.039 --> 00:05:46.479 +should really not have to type. + +00:05:46.479 --> 00:05:47.360 +So we’re going to have to + +00:05:47.360 --> 00:05:50.400 +do something about that. + +05:50.400 --> 00:05:51.600 +we’re going to have to create + +00:05:51.600 --> 00:05:52.479 +protected strings + +00:05:52.479 --> 00:05:54.400 +with regular expressions, + +05:54.400 --> 00:05:56.800 +so that the strings can be visualized + +00:05:56.800 --> 00:05:59.120 +right away in the source segment, + +05:59.120 --> 00:06:00.479 +entered semi-automatically + +00:06:00.479 --> 00:06:01.680 +in the target segment, + +00:06:01.680 --> 00:06:04.479 +and checked for integrity. + +06:04.479 --> 00:06:06.479 +The regular expression I came up with + +06:06.479 --> 00:06:08.160 +for defining most of the strings + +00:06:08.160 --> 00:06:09.600 +is this one, + +06:09.600 --> 00:06:11.120 +and I’m not a regular expression pro + +00:06:11.120 --> 00:06:13.360 +so I’m sure some of you will correct me. + +00:06:13.360 --> 00:06:14.560 +But this expression gives me + +00:06:14.560 --> 00:06:15.919 +a good enough definition + +00:06:15.919 --> 00:06:17.919 +even though it does not yet include + +00:06:17.919 --> 00:06:20.960 +Org mode syntax. + +06:20.960 --> 00:06:22.344 +So now we have all those + +00:06:22.344 --> 00:06:23.440 +.texi specific things + +00:06:23.440 --> 00:06:24.960 +that we don’t want to touch + +06:24.960 --> 00:06:26.100 +displayed in gray. + +00:06:26.100 --> 00:06:27.680 +Actually, you may have noticed + +00:06:27.680 --> 00:06:28.479 +that I cheated a bit, + +06:28.479 --> 00:06:30.319 +because here I added the years + +00:06:30.319 --> 00:06:32.000 +and the Free Software Foundation name + +00:06:32.000 --> 00:06:34.000 +to the previous regular expression + +00:06:34.000 --> 00:06:35.520 +to show you that you can protect + +00:06:35.520 --> 00:06:38.560 +any kind of string, really. + +06:38.560 --> 00:06:39.520 +So what we have now + +00:06:39.520 --> 00:06:41.360 +is a way to visualize the strings + +00:06:41.360 --> 00:06:43.440 +that we do not want to touch, + +06:43.440 --> 00:06:45.440 +but we still have to enter all of them + +00:06:45.440 --> 00:06:46.880 +in the translation. + +06:46.880 --> 00:06:48.319 +For that, we have the pop-up menu + +00:06:48.319 --> 00:06:50.400 +that I used earlier with the glossary, + +00:06:50.400 --> 00:06:51.520 +and we also have items + +00:06:51.520 --> 00:06:52.400 +in the edit menu + +00:06:52.400 --> 00:06:53.919 +that come with shortcuts + +00:06:53.919 --> 00:06:57.199 +for easy insertion of missing tags. + +06:57.199 --> 00:06:58.800 +Last, but certainly not least, + +00:06:58.800 --> 00:07:00.800 +we can now validate our input. + +00:07:00.800 --> 00:07:02.479 +Here, OmegaT properly tells me + +00:07:02.479 --> 00:07:05.759 +that I missed 7 protected strings, + +07:05.759 --> 00:07:07.599 +I entered only 1998, + +00:07:07.599 --> 00:07:09.280 +but there were five different years, + +00:07:09.280 --> 00:07:10.479 +the copyright string, + +00:07:10.479 --> 00:07:14.240 +and the FSF name string. + +07:14.240 --> 00:07:15.970 +With all this almost native + +00:07:15.970 --> 00:07:16.960 +Texinfo support, + +00:07:16.960 --> 00:07:18.880 +we have much less things to type, + +07:18.880 --> 00:07:19.919 +and there is a much lower + +00:07:19.919 --> 00:07:21.120 +potential for errors. + +00:07:21.120 --> 00:07:25.199 +But we agree, it’s still a lot of work. + +07:25.199 --> 00:07:26.319 +What we’d like now + +00:07:26.319 --> 00:07:27.840 +is to work with fellow translators, + +00:07:27.840 --> 00:07:28.720 +and here we need to know + +00:07:28.720 --> 00:07:29.840 +that OmegaT is actually + +00:07:29.840 --> 00:07:32.080 +a hidden svn/git client, + +00:07:32.080 --> 00:07:34.240 +and team projects can be hosted + +07:34.240 --> 00:07:36.319 +on svn/git platforms. + +07:36.319 --> 00:07:37.199 +Translators don’t need to + +00:07:37.199 --> 00:07:38.880 +know anything about VCS. + +00:07:38.880 --> 00:07:40.720 +They just need access credentials, + +00:07:40.720 --> 00:07:42.400 +and OmegaT commits for them. + +00:07:42.400 --> 00:07:44.080 +This way we do not have to use + +00:07:44.080 --> 00:07:45.759 +ugly and clumsy web-based + +00:07:45.759 --> 00:07:47.199 +translation interfaces, + +00:07:47.199 --> 00:07:48.800 +and we can use a powerful + +00:07:48.800 --> 00:07:51.440 +offline professional tool. + +07:51.440 --> 00:07:52.479 +So this is how it looks + +00:07:52.479 --> 00:07:54.160 +when you look at the platform + +00:07:54.160 --> 00:07:55.919 +where I hosted this project. + +07:55.919 --> 00:07:57.199 +The last updates are from + +00:07:57.199 --> 00:07:58.639 +20 days and 30 seconds ago + +00:07:58.639 --> 00:08:00.720 +when I created this slide, + +08:00.720 --> 00:08:02.479 +and you can see that I had a partner + +00:08:02.479 --> 00:08:04.639 +who worked with me on the same file set. + +08:04.639 --> 00:08:05.520 +Although it looks like + +00:08:05.520 --> 00:08:06.879 +we actually committed the translation + +00:08:06.879 --> 00:08:07.680 +to the platform, + +00:08:07.680 --> 00:08:11.039 +it was not us, but OmegaT. + +00:08:11.039 --> 00:08:13.599 +OmegaT does all the heavy-duty work. + +08:13.599 --> 00:08:15.039 +It regularly saves to + +00:08:15.039 --> 00:08:16.879 +and syncs from the servers. + +08:16.879 --> 00:08:18.720 +Translators are regularly kept updated + +08:18.720 --> 00:08:20.479 +with work from fellow translators, + +00:08:20.479 --> 00:08:21.680 +and when necessary, + +00:08:21.680 --> 00:08:23.360 +OmegaT offers a simple + +00:08:23.360 --> 00:08:25.440 +conflict-resolution dialogue. + +08:25.440 --> 00:08:27.039 +Translators never have to do anything + +08:27.039 --> 00:08:29.360 +with svn or git ever. + +08:29.360 --> 00:08:30.800 +And now we can envision a future + +00:08:30.800 --> 00:08:31.599 +not so far away + +00:08:31.599 --> 00:08:33.120 +where the manuals will be translated + +00:08:33.120 --> 00:08:34.159 +and eventually included + +00:08:34.159 --> 00:08:35.279 +in the distribution, + +00:08:35.279 --> 00:08:36.080 +but that’s a topic + +00:08:36.080 --> 00:08:39.760 +for a different presentation. + +08:39.760 --> 00:08:42.080 +So we’ve reached the end of this session. + +08:42.080 --> 00:08:44.240 +Thank you very much again for joining it. + +08:44.240 --> 00:08:45.600 +There are plenty of topics + +00:08:45.600 --> 00:08:46.880 +I promised I would not address, + +00:08:46.880 --> 00:08:50.000 +and I think I kept my promise. + +08:50.000 --> 00:08:51.600 +There will be a Q&A now, + +00:08:51.600 --> 00:08:52.517 +and I also started + +00:08:52.517 --> 00:08:53.600 +a thread about this talk + +00:08:53.600 --> 00:08:55.519 +on Reddit last Saturday. + +08:55.519 --> 00:08:57.279 +You can find me on the emacs-help + +00:08:57.279 --> 00:08:59.200 +and emacs-devel lists as well, + +00:08:59.200 --> 00:09:00.480 +so don’t hesitate to send me + +00:09:00.480 --> 00:09:02.080 +questions and remarks. + +09:02.080 --> 09:06.760 +Thank you again, and see you around. diff --git a/2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main_fr.vtt b/2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main_fr.vtt new file mode 100644 index 00000000..69369c4e --- /dev/null +++ b/2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main_fr.vtt @@ -0,0 +1,892 @@ +WEBVTT + +00:01.280 --> 00:00:02.560 +Bonjour tout le monde. + +00:02.560 --> 00:00:04.400 +Je m’appelle Jean-Christophe Helary, + +00:00:04.400 --> 00:00:05.680 +et aujourd’hui je vais vous parler + +00:00:05.680 --> 00:00:08.320 +de la traduction des manuels Emacs avec OmegaT. + +00:00:08.320 --> 00:00:10.960 +Merci de vous joindre à moi aujourd’hui. + +00:10.960 --> 00:00:12.880 +La traduction dans le monde du logiciel libre + +00:12.880 --> 00:00:15.040 +est un phénomène très important. Vous savez déjà + +00:15.040 --> 00:00:17.119 +que la plupart des distributions Linux, + +00:17.119 --> 00:00:18.720 +la plupart des logiciels, + +00:00:18.720 --> 00:00:19.920 +la plupart des sites web + +00:00:19.920 --> 00:00:22.320 +sont traduits par des dizaines de communautés + +00:00:22.320 --> 00:00:23.439 +à l’aide de processus + +00:23.439 --> 00:00:24.880 +et de formats de fichiers tous différents. + +00:24.880 --> 00:00:27.359 +La traduction et la localisation + +00:27.359 --> 00:00:29.599 +sont des choses que nous connaissons bien. + +00:29.599 --> 00:00:30.400 +C’est un peu différent + +00:00:30.400 --> 00:00:32.160 +pour la communauté Emacs. + +00:32.160 --> 00:00:34.079 +Nous n’avons pas de processus de localisation + +00:34.079 --> 00:00:35.200 +parce que c’est encore trop complexe + +00:00:35.200 --> 00:00:35.920 +et parce que nous n’avons pas + +00:00:35.920 --> 00:00:37.600 +encore les ressources nécessaires. + +00:37.600 --> 00:00:39.920 +Néanmoins, nous pourrions traduire les manuels, + +00:00:39.920 --> 00:00:41.200 +et traduire les manuels + +00:00:41.200 --> 00:00:42.399 +apporterait probablement beaucoup + +00:00:42.399 --> 00:00:45.600 +à la communauté Emacs dans son ensemble. + +00:45.600 --> 00:00:47.920 +Quel est donc l’état des manuels ? + +00:47.920 --> 00:00:51.199 +À ce jour, nous avons 182 fichiers + +00:51.199 --> 00:00:54.160 +aux formats .texi et .org. + +00:54.160 --> 00:00:56.559 +Nous avons plus de 2 millions de mots. + +00:56.559 --> 00:00:57.360 +Nous avons plus de + +00:00:57.360 --> 00:00:59.039 +50 millions de caractères. + +00:00:59.039 --> 00:01:00.559 +C’est donc beaucoup de travail, + +01:00.559 --> 00:01:04.559 +et il est clair qu’une personne ne suffira pas. + +01:04.559 --> 00:01:06.159 +Quand on ouvre un fichier .texi + +00:01:06.159 --> 00:01:07.760 +qu’est-ce qu’on y trouve ? + +01:07.760 --> 00:01:09.439 +Eh bien, beaucoup de choses en fait + +01:09.439 --> 00:01:10.560 +que les traducteurs + +00:01:10.560 --> 00:01:12.400 +ne devraient pas avoir à traduire. + +01:12.400 --> 00:01:13.680 +Ici, on peut voir que seul + +00:01:13.680 --> 00:01:15.040 +le tout dernier segment, + +00:01:15.040 --> 00:01:16.400 +la toute dernière phrase + +00:01:16.400 --> 00:01:18.080 +doit être traduite. + +01:18.080 --> 00:01:19.360 +Toutes ces choses « méta » + +00:01:19.360 --> 00:01:20.240 +ne devraient pas être sous + +00:01:20.240 --> 00:01:24.479 +les yeux du traducteur. + +01:24.479 --> 00:01:26.720 +Comment faire face à cette situation ? + +01:26.720 --> 00:01:27.680 +Pour les fichiers de code, nous avons + +00:01:27.680 --> 00:01:29.360 +l’utilitaire gettext qui convertit + +00:01:29.360 --> 00:01:30.640 +toutes les chaînes de traduisibles + +00:01:30.640 --> 00:01:32.079 +dans un format traduisible, + +00:01:32.079 --> 00:01:33.840 +qui est le format .po. + +01:33.840 --> 00:01:35.520 +Ce format .po est omniprésent, + +00:01:35.520 --> 00:01:36.400 +même dans l’industrie de la traduction + +00:01:36.400 --> 00:01:38.720 +des logiciels non-libres. + +01:38.720 --> 00:01:39.520 +Pour la documentation, + +00:01:39.520 --> 00:01:40.720 +nous avons quelque chose de différent + +00:01:40.720 --> 00:01:42.000 +qui s’appelle po4a, + +00:01:42.000 --> 00:01:45.119 +l’abréviation de « po for all » (po pour tous). + +01:45.119 --> 00:01:46.399 +Quand on utilise po4a + +00:01:46.399 --> 00:01:49.200 +sur ces 182 fichiers .texi et .org, + +00:01:49.200 --> 00:01:50.479 +qu’est-ce qu’on obtient ? + +01:50.479 --> 00:01:52.640 +On obtient quelque chose de bien mieux. + +01:52.640 --> 00:01:54.799 +Maintenant on a trois segments. + +01:54.799 --> 00:01:55.759 +Ce n’est pas parfait, car, + +00:01:55.759 --> 00:01:56.399 +comme vous pouvez le voir, + +00:01:56.399 --> 00:01:57.280 +les deux premiers segments + +00:01:57.280 --> 00:01:58.880 +ne sont pas à traduire. + +01:58.880 --> 00:01:59.520 +Donc on peut encore + +00:01:59.520 --> 00:02:02.479 +améliorer les choses. + +02:02.479 --> 00:02:04.960 +Quand on met ces fichiers + +00:02:04.960 --> 00:02:07.119 +dans OmegaT, on réduit considérablement + +00:02:07.119 --> 00:02:08.800 +le nombre total de mots. + +02:08.800 --> 00:02:11.360 +On a maintenant 50 % de mots en moins + +00:02:11.360 --> 00:02:14.239 +et 23 % de caractères en moins à taper, + +02:14.239 --> 00:02:15.680 +mais c’est toujours encore beaucoup de travail. + +00:02:15.680 --> 00:02:17.599 +Je vais donc vous parler d’OmegaT maintenant + +00:02:17.599 --> 00:02:22.239 +pour voir où il peut nous être utile. + +02:22.239 --> 00:02:25.440 +OmegaT est un logiciel GPL3+, Java8+. + +02:25.440 --> 00:02:27.599 +C’est un outil de Traduction Assistée par Ordinateur. + +02:27.599 --> 00:02:29.440 +On abrège ça TAO. + +02:29.440 --> 00:02:30.720 +La TAO est aux traducteurs + +00:02:30.720 --> 00:02:33.280 +ce que les EDI sont aux programmeurs. + +02:33.280 --> 00:02:35.040 +Elle exploite la puissance de l’ordinateur + +00:02:35.040 --> 00:02:36.480 +pour automatiser notre travail, + +00:02:36.480 --> 00:02:38.400 +qui consiste en recherche de références, + +00:02:38.400 --> 00:02:40.800 +de correspondances, insertions automatiques, + +00:02:40.800 --> 00:02:44.080 +et d’autres choses comme ça. + +02:44.080 --> 00:02:46.319 +OmegaT n’est plus si jeune. + +02:46.319 --> 00:02:48.319 +Il aura 20 ans l’année prochaine, + +02:48.319 --> 00:02:48.959 +et à ce stade + +00:02:48.959 --> 00:02:51.440 +nous avons environ 1,5 million de téléchargements + +00:02:51.440 --> 00:02:53.200 +sur le site SourceForge + +00:02:53.200 --> 00:02:54.080 +ce qui ne veut pas dire grand-chose + +00:02:54.080 --> 00:02:55.040 +parce que cela inclut + +00:02:55.040 --> 00:02:56.480 +les fichiers utilisés pour la localisation + +00:02:56.480 --> 00:02:57.920 +les manuels, mais quand même + +00:02:57.920 --> 00:02:59.599 +c’est un chiffre quand même important. + +02:59.599 --> 00:03:00.720 +OmegaT est inclus dans + +00:03:00.720 --> 00:03:02.400 +beaucoup de distributions Linux, + +00:03:02.400 --> 00:03:03.680 +mais comme vous pouvez le voir ici, + +03:03.680 --> 00:03:05.920 +il est surtout téléchargé sur Windows + +00:03:05.920 --> 00:03:06.800 +car les traducteurs + +00:03:06.800 --> 00:03:09.680 +travaillent principalement sous Windows. + +03:09.680 --> 00:03:11.120 +OmegaT a un logo sympa + +00:03:11.120 --> 00:03:12.080 +et un site sympa aussi, + +00:03:12.080 --> 00:03:13.920 +et je vous invite vraiment à le visiter. + +00:03:13.920 --> 00:03:16.159 +L’URL est omegat.org et vous y trouverez + +03:16.159 --> 00:03:17.280 +toutes les informations dont vous avez besoin + +00:03:17.280 --> 00:03:19.040 +ainsi que les téléchargements des versions Linux, + +00:03:19.040 --> 00:03:22.080 +avec ou sans Java inclus. + +03:22.080 --> 00:03:24.799 +Alors, qu’est-ce qu’OmegaT nous apporte ? + +03:24.799 --> 00:03:26.560 +Les traducteurs professionnels doivent fournir + +03:26.560 --> 00:03:27.680 +des traductions rapides, cohérentes, + +00:03:27.680 --> 00:03:29.519 +et de qualité, + +03:29.519 --> 00:03:30.720 +et nous devons disposer d’outils appropriés + +00:03:30.720 --> 00:03:32.159 +pour y parvenir. + +00:03:32.159 --> 00:03:34.239 +J’aimerais que po-mode fasse partie de nos outils, + +00:03:34.239 --> 00:03:35.120 +mais ce n’est pas le cas, + +03:35.120 --> 00:03:36.560 +et c’est bien dommage. + +03:36.560 --> 00:03:39.760 +Nous devons donc utiliser ces outils de TAO. + +03:39.760 --> 00:03:41.440 +Laissez-moi vous montrer à quoi ressemble OmegaT + +03:41.440 --> 00:03:43.120 +quand j’ouvre ce projet que j’ai créé + +03:43.120 --> 00:03:45.200 +pour cette présentation. + +03:45.200 --> 00:03:46.640 +La fenêtre est assez impressionnante, + +00:03:46.640 --> 00:03:47.760 +mais vous pouvez en fait modifier + +00:03:47.760 --> 00:03:49.519 +toutes les parties selon vos besoins. + +03:49.519 --> 00:03:50.400 +Je veux juste vous montrer + +00:03:50.400 --> 00:03:51.120 +tout en même temps + +00:03:51.120 --> 00:03:53.680 +pour vous donner une idée rapide de l’ensemble. + +03:53.680 --> 00:03:55.200 +Vous avez différentes couleurs, fenêtres, + +00:03:55.200 --> 00:03:55.920 +et tous ces espaces + +00:03:55.920 --> 00:03:57.120 +ont des fonctions différentes + +03:57.120 --> 00:03:58.560 +qui aident le traducteur, + +00:03:58.560 --> 00:03:59.360 +et qui probablement ne vous sont + +00:03:59.360 --> 00:04:02.879 +pas familières. + +04:02.879 --> 00:04:04.080 +Je vais vous présenter + +00:04:04.080 --> 00:04:05.680 +l’interface maintenant. + +04:05.680 --> 00:04:07.519 +Tout d’abord, nous avons l’éditeur. + +04:07.519 --> 00:04:09.439 +L’éditeur est composé de deux parties : + +04:09.439 --> 00:04:10.480 +le segment courant, + +00:04:10.480 --> 00:04:12.319 +qui est associé à un numéro, + +00:04:12.319 --> 00:04:13.519 +et tous les autres segments, + +00:04:13.519 --> 00:04:15.840 +au-dessus ou en dessous. + +04:15.840 --> 00:04:16.720 +En haut de la fenêtre, + +00:04:16.720 --> 00:04:18.720 +vous pouvez voir les trois premiers segments + +00:04:18.720 --> 00:04:20.799 +qui étaient dans le fichier .po. + +04:20.799 --> 00:04:22.880 +Le dernier ici, le quatrième, inclut + +00:04:22.880 --> 00:04:28.720 +une insertion automatique de correspondance. + +04:28.720 --> 00:04:30.880 +On appelle ce type de traductions + +04:30.880 --> 00:04:32.720 +des « mémoires de traduction ». + +04:32.720 --> 00:04:35.280 +OmegaT a inséré celle-ci automatiquement + +00:04:35.280 --> 00:04:37.120 +parce que j’ai paramétré comme ça, + +04:37.120 --> 00:04:38.560 +et pour ma sécurité, elle est insérée avec + +00:04:38.560 --> 00:04:40.639 +le préfixe prédéfini « fuzzy » + +00:04:40.639 --> 00:04:41.919 +que je devrai retirer + +00:04:41.919 --> 00:04:44.880 +pour valider la traduction. + +04:44.880 --> 00:04:47.919 +La fonctionnalité suivante est le glossaire. + +04:47.919 --> 00:04:48.479 +Dans ce projet, + +00:04:48.479 --> 00:04:50.160 +on a beaucoup de glossaires. + +00:04:50.160 --> 00:04:52.560 +Certains sont pertinents, d’autres non. + +04:52.560 --> 00:04:53.919 +Dans le segment que je suis en train de traduire + +00:04:53.919 --> 00:04:55.199 +en ce moment, vous pouvez voir + +00:04:55.199 --> 00:04:57.520 +des éléments soulignés. + +04:57.520 --> 00:04:59.040 +Ce menu contextuel à droite + +00:04:59.040 --> 00:05:02.240 +me permet d’entrer les termes au fur et à mesure que j’écris. + +05:02.240 --> 00:05:04.639 +C’est une sorte de système d’insertion automatique + +00:05:04.639 --> 00:05:07.039 +qui propose aussi des prédictions de l’historique, + +00:05:07.039 --> 00:05:14.479 +des chaînes prédéfinies et d’autres choses comme ça. + +05:14.479 --> 00:05:15.440 +Dans la partie à droite, + +00:05:15.440 --> 00:05:17.120 +on a des informations de référence + +00:05:17.120 --> 00:05:18.240 +qui viennent directement + +00:05:18.240 --> 00:05:21.440 +des fichiers .po et .texi. + +05:21.440 --> 00:05:23.440 +On a également des notes à partager + +00:05:23.440 --> 00:05:25.759 +avec des collègues traducteurs, + +05:25.759 --> 00:05:28.080 +et nous avons des chiffres qui me disent + +00:05:28.080 --> 00:05:31.199 +qu’il me reste encore 143 000 segments à traduire + +00:05:31.199 --> 00:05:35.280 +avant de terminer cette traduction. + +05:35.280 --> 00:05:37.120 +Comme on le voit, il y a beaucoup de chaînes + +05:37.120 --> 00:05:40.000 +que nous ne voulons vraiment pas avoir à saisir. + +05:40.000 --> 00:05:42.160 +Par exemple, ces chaînes + +00:05:42.160 --> 00:05:43.840 +sont des chaînes .texi typiques + +00:05:43.840 --> 00:05:45.039 +que le traducteur + +00:05:45.039 --> 00:05:46.479 +ne devrait vraiment pas avoir à saisir. + +00:05:46.479 --> 00:05:47.360 +Nous allons donc devoir + +00:05:47.360 --> 00:05:50.400 +faire quelque chose pour gérer ça. + +05:50.400 --> 00:05:51.600 +On va devoir créer des + +00:05:51.600 --> 00:05:52.479 +chaînes protégées + +00:05:52.479 --> 00:05:54.400 +à l’aide d’expressions régulières, + +05:54.400 --> 00:05:56.800 +afin que les chaînes puissent être visualisées + +00:05:56.800 --> 00:05:59.120 +immédiatement dans le segment source, + +05:59.120 --> 00:06:00.479 +saisies de manière semi-automatique + +00:06:00.479 --> 00:06:01.680 +dans le segment cible, + +00:06:01.680 --> 00:06:04.479 +et validables. + +06:04.479 --> 00:06:06.479 +L’expression régulière que j’ai trouvée + +06:06.479 --> 00:06:08.160 +pour définir la plupart des chaînes + +00:06:08.160 --> 00:06:09.600 +est celle-ci, + +06:09.600 --> 00:06:11.120 +et je ne suis pas un pro des regex + +00:06:11.120 --> 00:06:13.360 +donc certains d’entre vous pourront me corriger. + +00:06:13.360 --> 00:06:14.560 +Mais cette expression me donne + +00:06:14.560 --> 00:06:15.919 +une définition suffisante + +00:06:15.919 --> 00:06:17.919 +même si elle n’inclut pas encore + +00:06:17.919 --> 00:06:20.960 +la syntaxe org-mode. + +06:20.960 --> 00:06:22.344 +Donc maintenant on a toutes ces + +00:06:22.344 --> 00:06:23.440 +chaînes spécifiques à .texi + +00:06:23.440 --> 00:06:24.960 +que nous ne voulons pas toucher + +06:24.960 --> 00:06:26.100 +affichées en gris. + +00:06:26.100 --> 00:06:27.680 +En fait, vous avez peut-être remarqué + +00:06:27.680 --> 00:06:28.479 +que j’ai un peu triché, + +06:28.479 --> 00:06:30.319 +car ici j’ai ajouté les années + +00:06:30.319 --> 00:06:32.000 +et le nom de la Free Software Foundation + +00:06:32.000 --> 00:06:34.000 +à la regex précédente + +00:06:34.000 --> 00:06:35.520 +pour vous montrer que vous pouvez protéger + +00:06:35.520 --> 00:06:38.560 +vraiment n’importe quel type de chaîne. + +06:38.560 --> 00:06:39.520 +On obtient maintenant + +00:06:39.520 --> 00:06:41.360 +une visualisation des chaînes de caractères + +00:06:41.360 --> 00:06:43.440 +que nous ne voulons pas toucher, + +06:43.440 --> 00:06:45.440 +mais on doit encore les saisir toutes + +00:06:45.440 --> 00:06:46.880 +dans la traduction. + +06:46.880 --> 00:06:48.319 +Pour ça, on a le menu contextuel + +00:06:48.319 --> 00:06:50.400 +que j’ai utilisé plus tôt avec le glossaire, + +00:06:50.400 --> 00:06:51.520 +et on a également des rubriques + +00:06:51.520 --> 00:06:52.400 +dans le menu d’édition + +00:06:52.400 --> 00:06:53.919 +qui sont accompagnés de raccourcis + +00:06:53.919 --> 00:06:57.199 +pour faciliter l’insertion des balises manquantes. + +06:57.199 --> 00:06:58.800 +Enfin, et ce n’est pas le moins important, + +00:06:58.800 --> 00:07:00.800 +nous pouvons maintenant valider nos entrées. + +00:07:00.800 --> 00:07:02.479 +Ici, OmegaT me dit correctement + +00:07:02.479 --> 00:07:05.759 +que j’ai raté 7 chaînes protégées. + +07:05.759 --> 00:07:07.599 +Je n’ai entré que 1998, + +00:07:07.599 --> 00:07:09.280 +mais il y avait cinq autres années, + +00:07:09.280 --> 00:07:10.479 +la chaîne de copyright, + +00:07:10.479 --> 00:07:14.240 +et le nom de la FSF. + +07:14.240 --> 00:07:15.970 +Avec ce support presque natif + +00:07:15.970 --> 00:07:16.960 +du format Texinfo, + +00:07:16.960 --> 00:07:18.880 +on a beaucoup moins de choses à saisir, + +07:18.880 --> 00:07:19.919 +et il y a beaucoup moins + +00:07:19.919 --> 00:07:21.120 +d’erreurs potentielles. + +00:07:21.120 --> 00:07:25.199 +Mais on est d’accord, c’est encore beaucoup de travail. + +07:25.199 --> 00:07:26.319 +Ce qu’on aimerait maintenant + +00:07:26.319 --> 00:07:27.840 +c’est de collaborer avec des collègues traducteurs, + +00:07:27.840 --> 00:07:28.720 +et là, on doit savoir + +00:07:28.720 --> 00:07:29.840 +qu’OmegaT est en fait + +00:07:29.840 --> 00:07:32.080 +un client svn/git dissimulé, + +00:07:32.080 --> 00:07:34.240 +et que les projets en équipe peuvent être hébergés + +07:34.240 --> 00:07:36.319 +sur des plates-formes svn/git. + +07:36.319 --> 00:07:37.199 +Les traducteurs n’ont pas besoin + +00:07:37.199 --> 00:07:38.880 +de connaître le contrôle de version. + +00:07:38.880 --> 00:07:40.720 +Ils ont juste besoin d’identifiants d’accès, + +00:07:40.720 --> 00:07:42.400 +et OmegaT va commiter pour eux. + +00:07:42.400 --> 00:07:44.080 +De cette façon, nous n’avons pas besoin d’utiliser + +00:07:44.080 --> 00:07:45.759 +d’interfaces de traduction web laides + +00:07:45.759 --> 00:07:47.199 +et peu ergonomiques + +00:07:47.199 --> 00:07:48.800 +puisqu’on peut utiliser un outil + +00:07:48.800 --> 00:07:51.440 +hors ligne professionnel. + +07:51.440 --> 00:07:52.479 +Voici donc à quoi ressemble + +00:07:52.479 --> 00:07:54.160 +la plateforme + +00:07:54.160 --> 00:07:55.919 +où j’héberge ce projet. + +07:55.919 --> 00:07:57.199 +Les dernières mises à jour datent d’il y a + +00:07:57.199 --> 00:07:58.639 +20 jours et 30 secondes + +00:07:58.639 --> 00:08:00.720 +quand j’ai créé cette présentation, + +08:00.720 --> 00:08:02.479 +et vous pouvez voir que j’ai un partenaire + +00:08:02.479 --> 00:08:04.639 +qui a travaillé avec moi sur le même ensemble de fichiers. + +08:04.639 --> 00:08:05.520 +Bien qu’il semble que + +00:08:05.520 --> 00:08:06.879 +que nous avons effectivement commité la traduction + +00:08:06.879 --> 00:08:07.680 +sur la plateforme, + +00:08:07.680 --> 00:08:11.039 +ce n’était pas nous, mais OmegaT. + +00:08:11.039 --> 00:08:13.599 +OmegaT fait le gros du travail. + +08:13.599 --> 00:08:15.039 +Il effectue régulièrement des sauvegardes et + +00:08:15.039 --> 00:08:16.879 +se synchronise avec les serveurs. + +08:16.879 --> 00:08:18.720 +Les traducteurs reçoivent régulièrement + +08:18.720 --> 00:08:20.479 +les mises à jour de leurs collègues, + +00:08:20.479 --> 00:08:21.680 +et quand il le faut, + +00:08:21.680 --> 00:08:23.360 +OmegaT affiche un simple + +00:08:23.360 --> 00:08:25.440 +dialogue de résolution des conflits. + +08:25.440 --> 00:08:27.039 +Les traducteurs n’ont jamais à manipuler + +08:27.039 --> 00:08:29.360 +svn ou git, jamais. + +08:29.360 --> 00:08:30.800 +Et maintenant, nous pouvons envisager un avenir + +00:08:30.800 --> 00:08:31.599 +pas si lointain + +00:08:31.599 --> 00:08:33.120 +où les manuels seraient traduits + +00:08:33.120 --> 00:08:34.159 +et éventuellement inclus + +00:08:34.159 --> 00:08:35.279 +dans la distribution, + +00:08:35.279 --> 00:08:36.080 +mais c’est un sujet + +00:08:36.080 --> 00:08:39.760 +pour une autre présentation. + +08:39.760 --> 00:08:42.080 +J’ai atteint la fin de cette session. + +08:42.080 --> 00:08:44.240 +Merci encore d’y avoir participé. + +08:44.240 --> 00:08:45.600 +Il y a beaucoup de sujets + +00:08:45.600 --> 00:08:46.880 +que j’avais promis de ne pas aborder, + +00:08:46.880 --> 00:08:50.000 +et je pense avoir tenu ma promesse. + +08:50.000 --> 00:08:51.600 +Il va y avoir des questions-réponses maintenant + +00:08:51.600 --> 00:08:52.517 +et j’ai aussi commencé + +00:08:52.517 --> 00:08:53.600 +un fil de discussion sur cette session + +00:08:53.600 --> 00:08:55.519 +samedi dernier, sur Reddit. + +08:55.519 --> 00:08:57.279 +Vous pouvez me trouver sur les listes emacs-help + +00:08:57.279 --> 00:08:59.200 +et emacs-devel, + +00:08:59.200 --> 00:09:00.480 +alors n’hésitez pas à m’envoyer + +00:09:00.480 --> 00:09:02.080 +vos questions et remarques. + +09:02.080 --> 09:06.760 +Merci encore, et à bientôt ! diff --git a/2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main_ja.vtt b/2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main_ja.vtt new file mode 100644 index 00000000..8d159336 --- /dev/null +++ b/2021/captions/emacsconf-2021-omegat--emacs-manuals-translation-and-omegat--jean-christophe-helary--main_ja.vtt @@ -0,0 +1,892 @@ +WEBVTT + +00:01.280 --> 00:00:02.560 +皆さん、こんにちは。 + +00:02.560 --> 00:00:04.400 +エラリー ジャンクリストフといいます。 + +00:00:04.400 --> 00:00:05.680 +今日はEmacsのマニュアルの翻訳と + +00:00:05.680 --> 00:00:08.320 +OmegaTについてお話しします。 + +00:00:08.320 --> 00:00:10.960 +セッションに参加いただき、ありがとうございます。 + +00:10.960 --> 00:00:12.880 +自由ソフトウェアの世界では + +00:12.880 --> 00:00:15.040 +翻訳は本当に大きな意味を持ちます。 + +00:15.040 --> 00:00:17.119 +ほとんどのLinuxディストリビューション、 + +00:17.119 --> 00:00:18.720 +ソフトウェアパッケージ + +00:00:18.720 --> 00:00:19.920 +ウェブサイトが + +00:00:19.920 --> 00:00:22.320 +異なるプロセスやファイル形式を使い、 + +00:00:22.320 --> 00:00:23.439 +多くのコミュニティによって + +00:23.439 --> 00:00:24.880 +翻訳されていることをすでにご存知でしょう。 + +00:24.880 --> 00:00:27.359 +翻訳とローカライゼーションについては + +00:27.359 --> 00:00:29.599 +ノウハウと経験がかなり蓄積されています。 + +00:29.599 --> 00:00:30.400 +しかし、Emacsコミュニティについては + +00:00:30.400 --> 00:00:32.160 +必ずしもそうではありません。 + +00:32.160 --> 00:00:34.079 +色々と複雑で、 + +00:34.079 --> 00:00:35.200 +またリソースがないため、 + +00:00:35.200 --> 00:00:35.920 +ローカライゼーションプロセスが + +00:00:35.920 --> 00:00:37.600 +まだ確立していません。 + +00:37.600 --> 00:00:39.920 +しかし、マニュアルの翻訳は可能ですし、 + +00:00:39.920 --> 00:00:41.200 +マニュアルの翻訳によって、 + +00:00:41.200 --> 00:00:42.399 +Emacsコミュニティ全体に + +00:00:42.399 --> 00:00:45.600 +多くの利益がもたらされるでしょう。 + +00:45.600 --> 00:00:47.920 +では、マニュアルはどうなっているのでしょうか? + +00:47.920 --> 00:00:51.199 +今日現在、182のファイルが + +00:51.199 --> 00:00:54.160 +.texi や.org 形式で作成されています。 + +00:54.160 --> 00:00:56.559 +単語数は200万以上です。 + +00:56.559 --> 00:00:57.360 +文字数は、 + +00:00:57.360 --> 00:00:59.039 +5000万以上です。 + +00:00:59.039 --> 00:01:00.559 +これはかなりの量ですし、 + +01:00.559 --> 00:01:04.559 +当然ながら、一人でできる仕事ではありません。 + +01:04.559 --> 00:01:06.159 +.texi ファイルを開くと、 + +00:01:06.159 --> 00:01:07.760 +何が出てくるのでしょうか? + +01:07.760 --> 00:01:09.439 +実は、翻訳者が翻訳する必要が + +01:09.439 --> 00:01:10.560 +ないものが + +00:01:10.560 --> 00:01:12.400 +たくさんあるのです。 + +01:12.400 --> 00:01:13.680 +ここでは、一番最後の + +00:01:13.680 --> 00:01:15.040 +セグメント、一番最後の + +00:01:15.040 --> 00:01:16.400 +文だけが翻訳する + +00:01:16.400 --> 00:01:18.080 +必要があります。 + +01:18.080 --> 00:01:19.360 +このようなメタ的なものは + +00:01:19.360 --> 00:01:20.240 +すべて翻訳者の目に + +00:01:20.240 --> 00:01:24.479 +触れる必要はありません。 + +01:24.479 --> 00:01:26.720 +このような場合はどう対処すればいいのでしょうか? + +01:26.720 --> 00:01:27.680 +ソースファイルの場合、 + +00:01:27.680 --> 00:01:29.360 +gettext というユーティリティーがあり、 + +00:01:29.360 --> 00:01:30.640 +翻訳可能な文字列を + +00:01:30.640 --> 00:01:32.079 +翻訳可能な形式に変換します。 + +00:01:32.079 --> 00:01:33.840 +それが .po 形式になります。 + +01:33.840 --> 00:01:35.520 +この .po 形式はどこにでもあり、 + +00:01:35.520 --> 00:01:36.400 +自由ではないソフトウェア + +00:01:36.400 --> 00:01:38.720 +翻訳業界でも広く使われています。 + +01:38.720 --> 00:01:39.520 +ドキュメントについては + +00:01:39.520 --> 00:01:40.720 +別のツールがあります。 + +00:01:40.720 --> 00:01:42.000 +po4a と呼ばれるもので、 + +00:01:42.000 --> 00:01:45.119 +これは「po for all」の略です。 + +01:45.119 --> 00:01:46.399 +po4aを182.texiと + +00:01:46.399 --> 00:01:49.200 +.org ファイルに用いると + +00:01:49.200 --> 00:01:50.479 +どうなるでしょうか? + +01:50.479 --> 00:01:52.640 +先ほどよりずっといいものができました。 + +01:52.640 --> 00:01:54.799 +これで分節が3つができました。 + +01:54.799 --> 00:01:55.759 +ご覧の通り、 + +00:01:55.759 --> 00:01:56.399 +最初の2つの分節は + +00:01:56.399 --> 00:01:57.280 +翻訳の必要がないので、 + +00:01:57.280 --> 00:01:58.880 +完璧ではありません。 + +01:58.880 --> 00:01:59.520 +ですから、まだ + +00:01:59.520 --> 00:02:02.479 +改善の余地があります。 + +02:02.479 --> 00:02:04.960 +さて、このファイルセットを + +00:02:04.960 --> 00:02:07.119 +OmegaTに入れると翻訳対象単語数が + +00:02:07.119 --> 00:02:08.800 +かなり減ります。 + +02:08.800 --> 00:02:11.360 +単語数が50%、 + +00:02:11.360 --> 00:02:14.239 +文字数が23%減りましたが、 + +02:14.239 --> 00:02:15.680 +まだかなりの仕事量です。 + +00:02:15.680 --> 00:02:17.599 +では、ここでOmegaTについて、 + +00:02:17.599 --> 00:02:22.239 +そして、OmegaTがどこに役立つかを見てみましょう。 + +02:22.239 --> 00:02:25.440 +OmegaTは、GPL3+ Java8+ のソフトで + +02:25.440 --> 00:02:27.599 +コンピューター支援翻訳ツールです。 + +02:27.599 --> 00:02:29.440 +Computer Aided Translationと呼ばれます。 + +02:29.440 --> 00:02:30.720 +CATは翻訳者にとって、 + +00:02:30.720 --> 00:02:33.280 +プログラマーにとってのIDEのようなものです。 + +02:33.280 --> 00:02:35.040 +CATは、コンピュータの力を利用して + +00:02:35.040 --> 00:02:36.480 +翻訳者の仕事を自動化します。 + +00:02:36.480 --> 00:02:38.400 +例えば、参考翻訳の検索や + +00:02:38.400 --> 00:02:40.800 +ファジーマッチ、自動入力 + +00:02:40.800 --> 00:02:44.080 +などのようなものです。 + +02:44.080 --> 00:02:46.319 +OmegaTは最近のものありません。 + +02:46.319 --> 00:02:48.319 +来年で20年になり、 + +02:48.319 --> 00:02:48.959 +現時点では + +00:02:48.959 --> 00:02:51.440 +SourceForgeのサイトから + +00:02:51.440 --> 00:02:53.200 +150万件前後のダウンロードがあります。 + +00:02:53.200 --> 00:02:54.080 +これにはローカライズや + +00:02:54.080 --> 00:02:55.040 +マニュアルに使用されるファイルが + +00:02:55.040 --> 00:02:56.480 +多少含まれるので、 + +00:02:56.480 --> 00:02:57.920 +それほど意味はありませんが、 + +00:02:57.920 --> 00:02:59.599 +それでもかなり大きな数字です。 + +02:59.599 --> 00:03:00.720 +OmegaTは、多くのLinux + +00:03:00.720 --> 00:03:02.400 +ディストリビューションに含まれますが、 + +00:03:02.400 --> 00:03:03.680 +ここで見られるように + +03:03.680 --> 00:03:05.920 +ほとんどがWindowsでダウンロードされています。 + +00:03:05.920 --> 00:03:06.800 +なぜなら、翻訳者は + +00:03:06.800 --> 00:03:09.680 +ほとんどWindows上で作業しているからです。 + +03:09.680 --> 00:03:11.120 +OmegaTにもかっこいいロゴと + +00:03:11.120 --> 00:03:12.080 +かっこいいサイトがあります。 + +00:03:12.080 --> 00:03:13.920 +ぜひ一度ご覧ください。 + +00:03:13.920 --> 00:03:16.159 +サイトはomegat.orgで、 + +03:16.159 --> 00:03:17.280 +すべての必要な情報が見られます。 + +00:03:17.280 --> 00:03:19.040 +また、Javaの有無の関わらず、 + +00:03:19.040 --> 00:03:22.080 +Linuxバージョンもダウンロードできます。 + +03:22.080 --> 00:03:24.799 +では、OmegaTによって何が変わるのでしょうか? + +03:24.799 --> 00:03:26.560 +プロの翻訳者が提供しなければいけないのは、 + +03:26.560 --> 00:03:27.680 +速く、一貫性があり + +00:03:27.680 --> 00:03:29.519 +品質の高い翻訳です。 + +03:29.519 --> 00:03:30.720 +それを実現するためには、 + +00:03:30.720 --> 00:03:32.159 +適切なツールが必要です。 + +00:03:32.159 --> 00:03:34.239 +po-modeがツールボックスの一部であればいいのですが、 + +00:03:34.239 --> 00:03:35.120 +そうはなっていません。 + +03:35.120 --> 00:03:36.560 +残念ながら。 + +03:36.560 --> 00:03:39.760 +ですから、そのようなCATツールを使わなければなりません。 + +03:39.760 --> 00:03:41.440 +このデモのために作成したプロジェクトを + +03:41.440 --> 00:03:43.120 +開くと、OmegaTがどのように表示されるか + +03:43.120 --> 00:03:45.200 +お見せしましょう。 + +03:45.200 --> 00:03:46.640 +表示はかなりややこしいですが、 + +00:03:46.640 --> 00:03:47.760 +実際には、必要に応じてすべての + +00:03:47.760 --> 00:03:49.519 +ウィンドウを変更できます。 + +03:49.519 --> 00:03:50.400 +OmegaTがどんなものなのか + +00:03:50.400 --> 00:03:51.120 +理解していただくために + +00:03:51.120 --> 00:03:53.680 +一度にすべてをお見せしたいと思います。 + +03:53.680 --> 00:03:55.200 +さまざまな色やウィンドウがあり、 + +00:03:55.200 --> 00:03:55.920 +それらスペースには + +00:03:55.920 --> 00:03:57.120 +翻訳者を支援する + +03:57.120 --> 00:03:58.560 +さまざまな機能がありますが、 + +00:03:58.560 --> 00:03:59.360 +皆さんにはあまり + +00:03:59.360 --> 00:04:02.879 +馴染みがないかもしれません。 + +04:02.879 --> 00:04:04.080 +今からそのインターフェースを + +00:04:04.080 --> 00:04:05.680 +ご紹介します。 + +04:05.680 --> 00:04:07.519 +まずは、エディターですね。 + +04:07.519 --> 00:04:09.439 +エディターは2つの部分から成ります。 + +04:09.439 --> 00:04:10.480 +番号に関連づけられた + +00:04:10.480 --> 00:04:12.319 +現在の分節と、 + +00:04:12.319 --> 00:04:13.519 +もうひとつは上下にあるすべての + +00:04:13.519 --> 00:04:15.840 +分節です。 + +04:15.840 --> 00:04:16.720 +ウィンドウの一番上には + +00:04:16.720 --> 00:04:18.720 +.poファイルにあった最初の3つの分節が + +00:04:18.720 --> 00:04:20.799 +表示されています。 + +04:20.799 --> 00:04:22.880 +ここの最後の4つ目の分節には + +00:04:22.880 --> 00:04:28.720 +ファジーマッチが自動挿入されています。 + +04:28.720 --> 00:04:30.880 +このようなレガシー翻訳は + +04:30.880 --> 00:04:32.720 +「翻訳メモリ」と呼ばれます。 + +04:32.720 --> 00:04:35.280 +OmegaTがこれを自動挿入したのは、 + +00:04:35.280 --> 00:04:37.120 +私がそうするように設定したからです。 + +04:37.120 --> 00:04:38.560 +また、私自身のセキュリティのために、 + +00:04:38.560 --> 00:04:40.639 +翻訳の検証のために + +00:04:40.639 --> 00:04:41.919 +削除しなければならない規定の + +00:04:41.919 --> 00:04:44.880 +[fuzzy] がついています。 + +04:44.880 --> 00:04:47.919 +次の機能は、用語集機能です。 + +04:47.919 --> 00:04:48.479 +今回のプロジェクトには + +00:04:48.479 --> 00:04:50.160 +たくさんの用語集データがあります。 + +00:04:50.160 --> 00:04:52.560 +関連のあるものもあれば、そうでないものもあります。 + +04:52.560 --> 00:04:53.919 +今翻訳している分節では + +00:04:53.919 --> 00:04:55.199 +下線が引かれた項目が + +00:04:55.199 --> 00:04:57.520 +あります。 + +04:57.520 --> 00:04:59.040 +右側のポップアップメニューでは + +00:04:59.040 --> 00:05:02.240 +入力中に用語を入れることができます。 + +05:02.240 --> 00:05:04.639 +これは自動挿入システムのようなもので、 + +00:05:04.639 --> 00:05:07.039 +履歴予測や定型文などと + +00:05:07.039 --> 00:05:14.479 +いったような入力補完に対応しています。 + +05:14.479 --> 00:05:15.440 +右側の部分には、 + +00:05:15.440 --> 00:05:17.120 +.poと.texiのファイルから + +00:05:17.120 --> 00:05:18.240 +直接得られた + +00:05:18.240 --> 00:05:21.440 +参照情報があります。 + +05:21.440 --> 00:05:23.440 +また、パートナーの翻訳者と + +00:05:23.440 --> 00:05:25.759 +共有できるメモもあり、 + +05:25.759 --> 00:05:28.080 +翻訳完了までに + +00:05:28.080 --> 00:05:31.199 +あと143,000分節あることを示す + +00:05:31.199 --> 00:05:35.280 +数字も表示されています。 + +05:35.280 --> 00:05:37.120 +しかし、どうしても + +05:37.120 --> 00:05:40.000 +入力したくない文字列がたくさんあります。 + +05:40.000 --> 00:05:42.160 +例えば、これらの文字列は + +00:05:42.160 --> 00:05:43.840 +典型的な .texi の文字列で、 + +00:05:43.840 --> 00:05:45.039 +翻訳者が入力する + +00:05:45.039 --> 00:05:46.479 +必要はありません。 + +00:05:46.479 --> 00:05:47.360 +これについて + +00:05:47.360 --> 00:05:50.400 +どうにかしなければなりません。 + +05:50.400 --> 00:05:51.600 +そのためには、正規表現を使い + +00:05:51.600 --> 00:05:52.479 +保護された文字列を作成し、 + +00:05:52.479 --> 00:05:54.400 +ソース分節では + +05:54.400 --> 00:05:56.800 +文字列をすぐに視覚化し、 + +00:05:56.800 --> 00:05:59.120 +ターゲット分節で + +05:59.120 --> 00:06:00.479 +半自動的に入力し、 + +00:06:00.479 --> 00:06:01.680 +整合性を + +00:06:01.680 --> 00:06:04.479 +チェックできるようにしましょう。 + +06:04.479 --> 00:06:06.479 +処理したい文字列を定義するのに + +06:06.479 --> 00:06:08.160 +考えた正規表現は + +00:06:08.160 --> 00:06:09.600 +このようなものです。 + +06:09.600 --> 00:06:11.120 +正規表現のプロではないので、 + +00:06:11.120 --> 00:06:13.360 +皆さんからのご指摘もあると思います。 + +00:06:13.360 --> 00:06:14.560 +しかし、この表現は + +00:06:14.560 --> 00:06:15.919 +Orgモードの構文を + +00:06:15.919 --> 00:06:17.919 +まだ含んでいないにもかかわらず + +00:06:17.919 --> 00:06:20.960 +十分な定義になっています。 + +06:20.960 --> 00:06:22.344 +これで、触ってはいけない + +00:06:22.344 --> 00:06:23.440 +.texi 特有のものが + +00:06:23.440 --> 00:06:24.960 +すべてグレーで + +06:24.960 --> 00:06:26.100 +表示されるようになりました。 + +00:06:26.100 --> 00:06:27.680 +実は、お気づきかもしれませんが + +00:06:27.680 --> 00:06:28.479 +少しズルをしました。 + +06:28.479 --> 00:06:30.319 +先ほどの正規表現に「年」と + +00:06:30.319 --> 00:06:32.000 +「Free Software Foundation」の名前を追加しました。 + +00:06:32.000 --> 00:06:34.000 +なぜなら、どんな種類の文字列でも + +00:06:34.000 --> 00:06:35.520 +保護できることを + +00:06:35.520 --> 00:06:38.560 +示したかったからです。 + +06:38.560 --> 00:06:39.520 +これで、 + +00:06:39.520 --> 00:06:41.360 +触れたくない文字列を + +00:06:41.360 --> 00:06:43.440 +可視化することができましたが、 + +06:43.440 --> 00:06:45.440 +それでもすべての文字列を翻訳に + +00:06:45.440 --> 00:06:46.880 +入力しなければなりません。 + +06:46.880 --> 00:06:48.319 +そのために、先ほどの用語集で使った + +00:06:48.319 --> 00:06:50.400 +ポップアップメニューがあれば、 + +00:06:50.400 --> 00:06:51.520 +編集メニューの中にも + +00:06:51.520 --> 00:06:52.400 +不足しているタグを + +00:06:52.400 --> 00:06:53.919 +簡単に挿入するための + +00:06:53.919 --> 00:06:57.199 +ショートカットも用意されています。 + +06:57.199 --> 00:06:58.800 +最後に忘れてはならないのが + +00:06:58.800 --> 00:07:00.800 +入力の検証が可能なことです。 + +00:07:00.800 --> 00:07:02.479 +ここで、OmegaTは7つの保護された文字列を + +00:07:02.479 --> 00:07:05.759 +見逃したことをきちんと見せてくれます。 + +07:05.759 --> 00:07:07.599 +私は1998年だけを入力しましたが、 + +00:07:07.599 --> 00:07:09.280 +5つの異なる年があり、 + +00:07:09.280 --> 00:07:10.479 +著作権の文字列と + +00:07:10.479 --> 00:07:14.240 +FSF名の文字列がありました。 + +07:14.240 --> 00:07:15.970 +この極めてネイティブに近い + +00:07:15.970 --> 00:07:16.960 +Texinfo対応により、 + +00:07:16.960 --> 00:07:18.880 +入力するものがずっと少なくなり、 + +07:18.880 --> 00:07:19.919 +エラーの可能性も + +00:07:19.919 --> 00:07:21.120 +ずっと低くなりました。 + +00:07:21.120 --> 00:07:25.199 +とはいえ、まだまだ大変な作業であることは間違いありません。 + +07:25.199 --> 00:07:26.319 +今、私たちが望んでいるのは、 + +00:07:26.319 --> 00:07:27.840 +仲間の翻訳者と一緒に仕事をすることです。 + +00:07:27.840 --> 00:07:28.720 +ここでわからないければならないのは、 + +00:07:28.720 --> 00:07:29.840 +OmegaTが実際に隠れ + +00:07:29.840 --> 00:07:32.080 +svn/gitクライアントであり、 + +00:07:32.080 --> 00:07:34.240 +チームプロジェクトがsvn/gitプラットフォームで + +07:34.240 --> 00:07:36.319 +ホスト可能であることです。 + +07:36.319 --> 00:07:37.199 +翻訳者は、VCSについて + +00:07:37.199 --> 00:07:38.880 +何も知る必要はありません。 + +00:07:38.880 --> 00:07:40.720 +ただ、アクセス認証を必要とし、 + +00:07:40.720 --> 00:07:42.400 +OmegaTは翻訳者の代わりにコミットします。 + +00:07:42.400 --> 00:07:44.080 +このようにして、 + +00:07:44.080 --> 00:07:45.759 +醜くて不十分なウェブベースの + +00:07:45.759 --> 00:07:47.199 +翻訳システムを使う必要なく、 + +00:07:47.199 --> 00:07:48.800 +強力なオフラインのプロフェッショナルツールを + +00:07:48.800 --> 00:07:51.440 +使うことができるのです。 + +07:51.440 --> 00:07:52.479 +この翻訳プロジェクトを + +00:07:52.479 --> 00:07:54.160 +ホストしているプラットフォームを見ると、 + +00:07:54.160 --> 00:07:55.919 +このように見えます。 + +07:55.919 --> 00:07:57.199 +最後の更新は、このスライドを作成した + +00:07:57.199 --> 00:07:58.639 +20日と30秒前のもので、 + +00:07:58.639 --> 00:08:00.720 +同じファイルセットで + +08:00.720 --> 00:08:02.479 +一緒に作業したパートナーが + +00:08:02.479 --> 00:08:04.639 +いたことがわかります。 + +08:04.639 --> 00:08:05.520 +私たちは翻訳をプラットフォームに + +00:08:05.520 --> 00:08:06.879 +コミットしたように見えますが、 + +00:08:06.879 --> 00:08:07.680 +それは私たちでなく、 + +00:08:07.680 --> 00:08:11.039 +OmegaTでした。 + +00:08:11.039 --> 00:08:13.599 +すべての面倒臭い仕事はOmegaTが行います。 + +08:13.599 --> 00:08:15.039 +定期的にサーバーに保存し、 + +00:08:15.039 --> 00:08:16.879 +サーバーから同期します。 + +08:16.879 --> 00:08:18.720 +翻訳者は、仲間の翻訳した内容を + +08:18.720 --> 00:08:20.479 +定期的に得られます。 + +00:08:20.479 --> 00:08:21.680 +そして必要に応じて + +00:08:21.680 --> 00:08:23.360 +OmegaTは、簡単な + +00:08:23.360 --> 00:08:25.440 +コンフリクト解決のためのウインドーを表示します。 + +08:25.440 --> 00:08:27.039 +翻訳者は、svnやgitを使って + +08:27.039 --> 00:08:29.360 +何かをする必要はありません。 + +08:29.360 --> 00:08:30.800 +そして今、私たちは、 + +00:08:30.800 --> 00:08:31.599 +マニュアルが翻訳され、 + +00:08:31.599 --> 00:08:33.120 +最終的にはEmacsに含まれるという + +00:08:33.120 --> 00:08:34.159 +そう遠くはない未来を + +00:08:34.159 --> 00:08:35.279 +思い描くことができますが、 + +00:08:35.279 --> 00:08:36.080 +それはこのプレゼンテーションとは + +00:08:36.080 --> 00:08:39.760 +別の話になります。 + +08:39.760 --> 00:08:42.080 +というわけで、セッションの終わりになりました。 + +08:42.080 --> 00:08:44.240 +ご参加いただいた皆様、本当にありがとうございました。 + +08:44.240 --> 00:08:45.600 +たくさんのトピックについて + +00:08:45.600 --> 00:08:46.880 +触れないと約束しましたが、 + +00:08:46.880 --> 00:08:50.000 +約束は守れたのではないでしょうか。 + +08:50.000 --> 00:08:51.600 +Q&Aもありますが、 + +00:08:51.600 --> 00:08:52.517 +実は、先週の土曜日に + +00:08:52.517 --> 00:08:53.600 +Redditでこのセッションに関するスレッドも + +00:08:53.600 --> 00:08:55.519 +立ち上げました。 + +08:55.519 --> 00:08:57.279 +emacs-helpやemacs-develのメーリングリストでも + +00:08:57.279 --> 00:08:59.200 +私の名前を見つけることができますので、 + +00:08:59.200 --> 00:09:00.480 +ご質問やご意見がありましたら、 + +00:09:00.480 --> 00:09:02.080 +遠慮なくお寄せください。 + +09:02.080 --> 09:06.760 +それでは、またお会いしましょう。 -- cgit v1.2.3