Как перевести на другие языки мою веб-страницу? - PullRequest
2 голосов
/ 17 января 2011

Как я могу перевести мои веб-страницы? На самом деле, какую технологию или какой сценарий, если требуется, следует использовать? Для информации; У меня есть весь переведенный текст. Но я не хочу создавать что-то вроде сайта-клона для другого языка. Я использовал только javascript, включая jquery.

Ответы [ 5 ]

8 голосов
/ 18 января 2011

Просто с помощью JavaScript ...

<script type="text/javascript">

// JSON-formatted, potentially read from a database
var article = {
    title: {
      en_US: "Article Title",
      fr_FR: "Titre de l\'Article"
    },
    content: {
      en_US: "Content of the Article.",
      fr_FR: "Contenu de l\'Article."
    }
}

// simple function to write the info to the page
function get_i18n(item, lang) {
    document.write(article[item][lang]);
}
</script>

<!-- English Version -->
<div class="story">
   <h1 class="title"><script>get_i18n('title','en_US');</script></h1>
   <p class="content"><script>get_i18n('content','en_US');</script></p>
</div>

<!-- French Version -->
<div class="story">
   <h1 class="title"><script>get_i18n('title','fr_FR');</script></h1>
   <p class="content"><script>get_i18n('content','fr_FR');</script></p>
</div>

Обратите внимание: это не очень изящное решение. Я уверен, что есть более красивый метод ...

2 голосов
/ 18 января 2011

Использование селекторов атрибутов CSS:

<style type="text/css">
    // hides all French blocks by default
    div.story[lang="fr"] {
        display: none;
    }
    // hide all English blocks
    body[lang="fr"] div.story[lang="en"] {
        display: none;
    }
    // show all French blocks
    body[lang="fr"] div.story[lang="fr"] {
        display: block;
    }
</style>

<!-- Change this to the language of the blocks you want to display -->
<body lang="fr">

    <!-- English block, shown by default -->
    <div class="story" lang="en">
       <h1 class="title">Article Title</h1>
       <p class="content">Content of the Article.</p>
    </div>

    <!-- French block, hidden by default -->
    <div class="story" lang="fr">
       <h1 class="title">Titre de l'Article</h1>
       <p class="content">Contenu de l'Article.</p>
    </div>

</body>

Эта настройка по умолчанию показывает все английские блоки, если только lang="fr" не установлен на теге <body>.

Конечно, вы 'Мне все еще понадобится какой-нибудь способ изменить атрибут lang тега <body> ...

1 голос
/ 17 января 2011

Вы на самом деле имеете в виду «как создать многоязычный веб-сайт», поскольку у вас уже есть «переведенный текст», как вы его называете.

Один из способов - поместить текст в контейнеры, а затем с помощью кода на стороне клиента изменитьупаковывает содержимое в соответствующий текст в соответствии с выбранным языком, имея массивы с переведенным текстом на каждом языке.

Если бы в вашем распоряжении был серверный язык, было бы намного лучше - есть ли у вас такая вещь?

0 голосов
/ 13 августа 2015

Для реализации JavaScript в GNU gettext API эти ссылки также могут быть полезны:
http://tnga.github.io/extra.js-ijs
http://tnga.github.io/extra.js-ijs/docs/iJS.Gettext.html

0 голосов
/ 17 января 2011

JavaScript будет слишком долго переводить ваш сайт.Я бы сказал, найти какое-то программное обеспечение, которое может переводить HTML-файлы и сохранить обе версии на вашем сервере.Я знаю, что это не то, что вы хотите, но это единственный практический способ прямо сейчас.

...