| Миледи, идите на кухню, приготовьте чашечку кофе, и порассуждаем маленько.
"я вообще-то сделала. Работает" - похвально, но не рационально, и почему. Допустим, что сейчас ваш мультиязычный сайт только и может выдать на нескольких языках пункты меню, и может даже этого и достаточно. Хотя в ваших переменных среди других языков почему-то есть русское, что для инстранца может оказаться непреодолимой проблемой. Ну это так, прелюдия.
Ваш скрипт, это автомат, причем автомат который совсем не знает кто им пользуется, немец, русский или иной басурман. Ваш автомат один для всех. Его главная задача, это выдать контент, причем выдать как можно быстрее, а быстрее будет подключить готовое и его использовать, чем заниматься ненужными вычислениями.
Ваши пользователи возможно захотят что-то у вас скачать, при этом немцу будет понятна ссылка с текстом "Гитлер капут", англичанину "Плиз, сэр", а русскому кроме "Валяй..." ничего не надо. И вы опять будете писать скрипт, в теле которого будете вычислять нечто, определять что это нечто должно выдавать.... А через неделю у ваших пользователей настроение измениться, им захочется другого, и вам придется опять вычислять, изменять....
"я вообще-то сделала. Работает" - забыть. Нельзя так делать, трудно вам будет потом вносить добавления и изменения. Вы можете привносить в свой автомат новые функции, видоизменять логику его работы, а вот поток данных, которые имеют одну и ту же суть, но разные значения, должны определяться загодя, и в нужном месте автомата только указывать на них ссылку, а не вычислять их имена, и не держать в теле автомата их значения. При этом вы можете спокойно добавлять любой язык, достаточно только описать все используемые автоматом констаны в новом языковом файле.
Я не знаю, что и как у вас на сайте, возможно для интерфейса удобнее будет иметь именно языковые файлы. Если ваши запросы идут через индексный файл, то вам достаточно подключить его в одном месте. Если же сайт имеет сложную структуру, возможно тогда будет удобнее воспользоваться базой. От этого сама суть не измениться - подключение необходимого языкового ресурса. Именно на это вы и должны обратить внимание, именно это и понять, а уж как сделать, это вторичный вопрос.
Вместо многих условий if, которыми вы определяте язык в скрипте, удобнее использовать условную операцию, которую я вам привел, и она означает следующее:
Переменная $lang равна (=), если пришел запрос языка (isset($_GET['lang'])), то равна значению этого запроса (тому, что после ?) $_GET['lang'], иначе она равна тому, что после (:) - значению по умолчанию 'ru'. | |