2016-07-05 4 views
0

Я программист-любитель, и я хочу сделать сайт с несколькими сайтами. Мои вопросы: (Для моих целей пусть сайт Английский сайт будет Н.Р. 1 и польская NR 2)Как сделать сайт с mulitlingual?

  1. Должна ли она быть en.example.com и pl.example.com или, может быть, и example.com/en example.com/pl?
  2. Должен ли я сделать полный сайт на одном языке, а затем перевести его?
  3. Как его перевести? Использование XML или что? Если веб-сайт 1 и веб-сайт 2 являются разными html-файлами или есть способ перевести html-файл, а затем показать перевод с использованием XML или что-то еще?

Если вам нужен какой-либо код или что-то сказать. Спасибо заранее :)

+0

Вы можете попробовать использовать [gettext] (http://php.net/manual/en/book.gettext.php) – jcubic

+1

У вас действительно есть три отдельных вопроса. 1 основана на мнениях и вне темы. 2 также основан на мнениях и вне темы. 3 может считаться основанной на мнениях или слишком широкой, но в любом случае это не относится к теме. – Quentin

+2

Я бы предложил посмотреть на шаблоны, что-то вроде Smarty или эквивалент. Это означало бы, что вы создадите веб-сайт один раз, а затем просто будете работать с ярлыками, которые переведены на разные языки и выбираются с помощью пользовательских настроек, файлов cookie или данных сеанса. – apriede

ответ

0

1) Я не думаю, что это имеет большое значение. Самое главное, чтобы Google мог сканировать оба языка, поэтому не используйте JavaScript для переключения между языками, все, что сделано на стороне сервера, чтобы оба языка могли сканироваться и оцениваться в Google.

2) Вы можете сделать один перевод, а затем другой, вы просто должны убедиться, что макет расширяется, чтобы разместить больше/меньше текста, не нарушая его. Возможно, использовать lorem ipsum во время проектирования.

3) Я бы поместил переводы в базу данных, а затем назову этот конкретный перевод в зависимости от того, является ли это EN или PL в доменном имени. Убедитесь, что веб-страница и база данных являются кодировкой UTF-8, иначе вы обнаружите, что вы получаете «смешные» символы, отображаемые.

-1

Вы могли бы сделать 2 разные языковые файлы и использовать константы PHP для определения текст, который вы хотите перевести, например:

lang_pl.php: 
define("_TEST", "polish translation"); 

lang_en.php: 
define("_TEST", "English translation"); 

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

Итак, если у вас есть текстовое поле, вы поместите его значение в _TEST (в промежутке между скобками php).

и он отобразит перевод выбранного варианта.

+0

не уверен, почему downvote, это сработает. – kerv

-1

Место, где я работал, делало это так: им не приходилось много писать на своем сайте, поэтому они хранили его в базе данных. Поскольку у ваших тегов есть php, я предполагаю, что вы знаете, как использовать базы данных. У них была таблица mysql, называемая языками с идентификатором языка (в вашем случае 1 для en и 2 для pl) и тексты в столбцах. Таким образом, имена столбцов были основным заголовком, intro_text, about_us ... Когда пользователь приходит, он выбирает язык, а запрос php получает страницу с этим языком. Это легко, потому что ваш контент статичен и может быть переведен до того, как сайт будет подключен к сети, если ваш контент динамический (пользователи добавляют контент), вам может потребоваться использовать машину перевода, потому что вы не можете ожидать, что ваши пользователи будут писать свою запись на всех языках.

0

Моя рекомендация заключается в том, что вы начинаете использовать любую Framework.

Например, если вы используете CakePHP, то вы должны написать

__('My name is') 

и перевести файлу

msgid "My name is" 
msgstr "Nazywam się" 

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

Кроме того, если вы не хотите использовать Framework, вы можете проверить эту ссылку, чтобы увидеть пример того, как это работает: http://tympanus.net/codrops/2009/12/30/easy-php-site-translation/

0

Хотя этот вопрос, вероятно, не является хорошим SO вопрос из-за своей широкой природы. Это может быть актуально для многих пользователей.

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

Наличие одного файла html, а затем его разбор и перевод его звучит как массивная головная боль.

Некоторые шаблоны шаблонов могут помочь вам в массовом порядке. Я использую Smarty, но это личный выбор, и здесь есть много вариантов.

Идея заключается в том, что вы создаете файл шаблона для своего html, а вместо фактического содержимого вы используете метки. Затем в вашем php-коде вы включаете правильный язык в зависимости от файлов cookie, пользовательских настроек или данных сеанса.

Хранение этикеток - еще одна проблема. Однако сохранение их в базе данных является хорошим вариантом, однако помните, что вы не хотите делать 100 запросов к базе данных для получения каждой метки. Что вы можете сделать, это сохранить их в базе данных, а затем сгенерировать языковой файл - массив меток -> переводы для быстрого доступа и регенерировать эти файлы всякий раз, когда вы добавляете/обновляете метки.

Или вы можете пропустить базу данных в целом и просто сохранить их в файлах, однако, поскольку они растут, они могут быть не так просты в обслуживании.

0

Я думаю, что самая простая ошибка для «любительского программиста» в этой области - позволить двум (или более) языковым версиям сайта расходиться. (Я видел, что так называемые профессионалы делают эту ошибку тоже ...). Вам нужно спроектировать ее, чтобы все, что является общим для обеих версий, было общим, так что, когда придет время внести изменения, вам нужно только внести изменения в одном месте. То, как вы это сделаете, будет зависеть от вашего выбора инструментов, и я не собираюсь начинать об этом, потому что это зависит от многих факторов, например от степени, в которой ваш контент ориентирован на базу данных.

Близко к этому относятся вопросы о том, кто выполняет перевод, как работают технические разработчики и переводчики, и как отслеживать, какой контент необходимо переводить после его изменения. Это скорее вопросы процесса, а не вопросы кодирования, поэтому это не подходит для SO.

Не ожидайте перевода сайта на один язык без какого-либо технического воздействия; вы обнаружите, что вы сделали всевозможные предположения о длине строк, порядке полей, о кодировании символов и шрифтах и ​​о культурных вещах, таких как почтовые индексы, которые оказались недействительными, когда вы пытаетесь преобразовать сайт в другую язык.

 Смежные вопросы

  • Нет связанных вопросов^_^