132 lines
6.9 KiB
HTML
132 lines
6.9 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html lang="en">
|
|||
|
<head>
|
|||
|
<meta charset="utf-8">
|
|||
|
<title>YBlog - multi language choices</title>
|
|||
|
<meta name="keywords" content="multilanguage, blog" />
|
|||
|
|
|||
|
<link rel="shortcut icon" type="image/x-icon" href="../../../../Scratch/img/favicon.ico" />
|
|||
|
<link rel="stylesheet" type="text/css" href="../../../../Scratch/css/brutalist.css" />
|
|||
|
<link rel="stylesheet" type="text/css" href="../../../../Scratch/css/pandoc-solarized.css" />
|
|||
|
<link rel="alternate" type="application/rss+xml" title="RSS" href="../../../../Scratch/en/blog/feed/feed.xml" />
|
|||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|||
|
<link rel="apple-touch-icon" href="../../../../Scratch/img/about/FlatAvatar@2x.png" />
|
|||
|
<!--[if lt IE 9]>
|
|||
|
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script>
|
|||
|
<![endif]-->
|
|||
|
<!-- IndieAuth -->
|
|||
|
<link href="https://twitter.com/yogsototh" rel="me">
|
|||
|
<link href="https://github.com/yogsototh" rel="me">
|
|||
|
<link href="mailto:yann.esposito@gmail.com" rel="me">
|
|||
|
<link rel="pgpkey" href="../../../../pubkey.txt">
|
|||
|
</head>
|
|||
|
<body lang="en" class="article">
|
|||
|
<div id="content">
|
|||
|
<div id="header">
|
|||
|
<div id="choix">
|
|||
|
<span id="choixlang">
|
|||
|
<a href="../../../../Scratch/fr/blog/2010-06-14-multi-language-choices/">French</a>
|
|||
|
</span>
|
|||
|
<span class="tomenu"><a href="#navigation">↓ Menu ↓</a></span>
|
|||
|
<span class="flush"></span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div id="titre">
|
|||
|
<h1>multi language choices</h1>
|
|||
|
|
|||
|
</div>
|
|||
|
<div class="flush"></div>
|
|||
|
<div id="afterheader" class="article">
|
|||
|
<div class="corps">
|
|||
|
<p>I translate most of my blog entries in French and English. Most people advice me to have one file per language. Generally it ends with:</p>
|
|||
|
<pre class="twilight">
|
|||
|
Bonjour,
|
|||
|
|
|||
|
voici un exemple de texte en français.
|
|||
|
[image](url)
|
|||
|
</pre>
|
|||
|
<pre class="twilight">
|
|||
|
Hello,
|
|||
|
|
|||
|
here is an example of english text.
|
|||
|
[image](url)
|
|||
|
</pre>
|
|||
|
<p>This way of handling translations force you to write completely an article in one language, copy it, and translate it.</p>
|
|||
|
<p>However, most of time, there are common parts like images, source code, etc… When I want to correct some mistake on these parts, I have to make twice the work. With sometimes adding another mistake in only one language.</p>
|
|||
|
<p>This is why I preferred to handle it differently. I use <em>tags</em> on a single file. Finally my files looks like:</p>
|
|||
|
<pre class="twilight">
|
|||
|
fr: Bonjour,
|
|||
|
en: Hello,
|
|||
|
|
|||
|
en: here is an example of english text.
|
|||
|
fr: voici un exemple de texte en français.
|
|||
|
[image](url)
|
|||
|
</pre>
|
|||
|
<p>As I edit my files with <a href="http://vim.org">vim</a>, it is really easy to add <code>fr:</code> or <code>en:</code> at some line’s beginning using the useful <code>C-v</code>. However <a href="http://nanoc.stoneship.org">nanoc</a> was conceived to be used for one language only. Or to be used with the first method. I tried to adapt nanoc to my usage. But after a while, I found it easier to pre-filter the nanoc work by a simple script. My script transform my file into two new files. And all work like a charm.</p>
|
|||
|
<p>You can get my blog code source (without most of articles) at <a href="http://github.com/yogsototh/Scratch">github.com/yogsototh/Scratch</a>.</p>
|
|||
|
</div>
|
|||
|
<div id="afterarticle">
|
|||
|
<div id="social">
|
|||
|
<a href="../../../../Scratch/en/blog/feed/feed.xml" target="_blank" rel="noopener noreferrer nofollow" class="social">RSS</a>
|
|||
|
·
|
|||
|
<a href="https://twitter.com/home?status=http%3A%2F%2Fyannesposito.com/Scratch/en/blog/2010-06-14-multi-language-choices/%20via%20@yogsototh" target="_blank" rel="noopener noreferrer nofollow" class="social">Tweet</a>
|
|||
|
·
|
|||
|
<a href="http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fyannesposito.com/Scratch/en/blog/2010-06-14-multi-language-choices/" target="_blank" rel="noopener noreferrer nofollow" class="social">FB</a>
|
|||
|
<br />
|
|||
|
<a class="message" href="../../../../Scratch/en/blog/Social-link-the-right-way/">These social sharing links preserve your privacy</a>
|
|||
|
</div>
|
|||
|
<div id="navigation">
|
|||
|
<a href="../../../../">Home</a>
|
|||
|
<span class="sep">¦</span>
|
|||
|
<a href="../../../../Scratch/en/blog">Blog</a>
|
|||
|
<span class="sep">¦</span>
|
|||
|
<a href="../../../../Scratch/en/softwares">Softwares</a>
|
|||
|
<span class="sep">¦</span>
|
|||
|
<a href="../../../../Scratch/en/about">About</a>
|
|||
|
</div>
|
|||
|
<div id="totop"><a href="#header">↑ Top ↑</a></div>
|
|||
|
<div id="bottom">
|
|||
|
<div>
|
|||
|
Published on 2010-06-14
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<a href="https://twitter.com/yogsototh">Follow @yogsototh</a>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<a rel="license" href="http://creativecommons.org/licenses/by/3.0/deed.en_US">Yann Esposito©</a>
|
|||
|
</div>
|
|||
|
|
|||
|
<div>
|
|||
|
Done with
|
|||
|
<a href="http://www.vim.org" target="_blank" rel="noopener noreferrer nofollow"><strike>Vim</strike></a>
|
|||
|
<a href="http://spacemacs.org" target="_blank" rel="noopener noreferrer nofollow">spacemacs</a>
|
|||
|
<span class="pala">&</span>
|
|||
|
<a href="http://nanoc.ws" target="_blank" rel="noopener noreferrer nofollow"><strike>nanoc</strike></a>
|
|||
|
<a href="http://jaspervdj.be/hakyll" target="_blank" rel="noopener noreferrer nofollow">Hakyll</a>
|
|||
|
</div>
|
|||
|
<hr />
|
|||
|
<div style="max-width: 100%">
|
|||
|
<a href="https://cardanohub.org">
|
|||
|
<img src="../../../../Scratch/img/ada-logo.png" class="simple" style="height: 16px;
|
|||
|
border-radius: 50%;
|
|||
|
vertical-align:middle;
|
|||
|
display:inline-block;" />
|
|||
|
ADA:
|
|||
|
</a>
|
|||
|
<code style="display:inline-block;
|
|||
|
word-wrap:break-word;
|
|||
|
text-align: left;
|
|||
|
vertical-align: top;
|
|||
|
max-width: 85%;">
|
|||
|
DdzFFzCqrhtAvdkmATx5Fm8NPJViDy85ZBw13p4XcNzVzvQg8e3vWLXq23JQWFxPEXK6Kvhaxxe7oJt4VMYHxpA2vtCFiP8fziohN6Yp
|
|||
|
</code>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
</div>
|
|||
|
</body>
|
|||
|
</html>
|