Да, это определенно можно управлять более эффективно. Это заявление прямо здесь является основной проблемой:
Затем я должен убедиться, что код, написанный на проекте israeli, всегда скопирован вручную в папку .com.
Этот процесс не только неэффективен, но и сильно подвержен ошибкам. И это совсем не масштабируется. В основном вы удваиваете свою разработку, тестирование/развертывание и т. Д. усилия. Если вам когда-нибудь понадобится развернуть другой экземпляр приложения, у вас будет утроенное усилие. И так далее.
Что вы хотите сделать, это изолировать компоненты, которые различаются между экземплярами приложения. Это только содержание языка? Это весь пользовательский интерфейс? Если это весь пользовательский интерфейс, вам нужно, чтобы пользовательский интерфейс был как можно более тонким и легким. (Ну, в любом случае, вы этого хотите.) Тогда вам придется удвоить работу с пользовательским интерфейсом. Остальная часть логики (бизнес-логика, доступ к данным, службы и т. Д.) Может быть постоянной во всех экземплярах приложения.
Если это всего лишь текстовый контент, то, возможно, вы можете повторно разложить этот текст, который нужно извлечь из базы данных. Каждая метка, каждая статья, каждый пункт меню и т. Д. Существуют системы CMS, которые делают это довольно хорошо, хотя у меня нет конкретных рекомендаций. Но общая идея заключается в том, чтобы UI был пустой оболочкой, заполненной данными, специфичными для этого экземпляра приложения. Затем каждый экземпляр будет контролировать свой «язык» (его содержимое в целом), просто управляя этими данными.
Для этого вам определенно не нужны несколько репозиториев кода. В конце концов, если у вас есть два репозитория кода, какой из них правильный? Если изменение сделано в одном хранилище, но не в другом, какой из них правильный? У вашего кода должен быть один «источник правды». Множество источников истины не означает истины.
Являются ли сайты отличными от языка? –
Да; используйте механизм [локализация] (http://en.wikipedia.org/wiki/Internationalization_and_localization). Это позволяет использовать общую базу кода (возможно, настраивается конфигурационным файлом). Копирование и вставка - ужасная идея! –
Код полностью такой же, система знает, как захватить RTL-изображения для иврита, потому что он знает пользовательский? Lang – Tzvi