2012-05-21 3 views
1

У меня есть многоязычный проект,Как управлять одним и тем же кодом на двух доменах?

проект полностью совместим с языками HE/EN.

В одном случае это будет загружено как вложенная в большом проекте израильского,

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

Я в настоящее время имею настройки SVN для Израильского проекта,

я еще не создала SVN для .com, это правильный путь, сохраняя 2-х депо для этого? Затем мне нужно будет убедиться, что код, написанный на израильском проекте, всегда скопирован вручную в папку .com,

Можно ли более эффективно управлять этим?

+0

Являются ли сайты отличными от языка? –

+3

Да; используйте механизм [локализация] (http://en.wikipedia.org/wiki/Internationalization_and_localization). Это позволяет использовать общую базу кода (возможно, настраивается конфигурационным файлом). Копирование и вставка - ужасная идея! –

+0

Код полностью такой же, система знает, как захватить RTL-изображения для иврита, потому что он знает пользовательский? Lang – Tzvi

ответ

3

Да, это определенно можно управлять более эффективно. Это заявление прямо здесь является основной проблемой:

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

Этот процесс не только неэффективен, но и сильно подвержен ошибкам. И это совсем не масштабируется. В основном вы удваиваете свою разработку, тестирование/развертывание и т. Д. усилия. Если вам когда-нибудь понадобится развернуть другой экземпляр приложения, у вас будет утроенное усилие. И так далее.

Что вы хотите сделать, это изолировать компоненты, которые различаются между экземплярами приложения. Это только содержание языка? Это весь пользовательский интерфейс? Если это весь пользовательский интерфейс, вам нужно, чтобы пользовательский интерфейс был как можно более тонким и легким. (Ну, в любом случае, вы этого хотите.) Тогда вам придется удвоить работу с пользовательским интерфейсом. Остальная часть логики (бизнес-логика, доступ к данным, службы и т. Д.) Может быть постоянной во всех экземплярах приложения.

Если это всего лишь текстовый контент, то, возможно, вы можете повторно разложить этот текст, который нужно извлечь из базы данных. Каждая метка, каждая статья, каждый пункт меню и т. Д. Существуют системы CMS, которые делают это довольно хорошо, хотя у меня нет конкретных рекомендаций. Но общая идея заключается в том, чтобы UI был пустой оболочкой, заполненной данными, специфичными для этого экземпляра приложения. Затем каждый экземпляр будет контролировать свой «язык» (его содержимое в целом), просто управляя этими данными.

Для этого вам определенно не нужны несколько репозиториев кода. В конце концов, если у вас есть два репозитория кода, какой из них правильный? Если изменение сделано в одном хранилище, но не в другом, какой из них правильный? У вашего кода должен быть один «источник правды». Множество источников истины не означает истины.

+0

Удивительный ответ спасибо, я буду использовать один SVN для этого и использовать PHP для всего рефакторинга. – Tzvi

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