Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Мультиязычный сайт

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Perun
Отправлено: 30 Апреля, 2019 - 18:48:17
Post Id


Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2016  


Помог: 0 раз(а)




Прошелся поиском, результатами не удовлетворился...

Во-первых - слишком неоднозначно. как и статьи из интернета, во-вторых информация об этом 5-6 летней давности.

Такое впечатление, что сегодня этот вопорс или не имеет значения или вообще никак не решается, а мультиязычность образуется как-то сама собой...

В силу своего разумения, варианты могут быть такими: либо отдельные домены/поддомены для разных языков, либо на одном домене но разные странички.

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

А если это динамические странички, и нужно каждый день, а то и по несколько десятков раз на день менять/добавлять не только ценники и названия товаров например для интернет магазина, а и выводить новые/редактировать имеющиеся массивы текста в виде статей, новостей и т.п.?
 
 Top
LIME
Отправлено: 01 Мая, 2019 - 15:01:31
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Perun пишет:
сегодня этот вопорс или не имеет значения или вообще никак не решается, а мультиязычность образуется как-то сама собой
просто избитая уже тема
Perun пишет:
во-вторых информация об этом 5-6 летней давности.
говорю же избитая
короче слушай кратко
Perun пишет:
либо отдельные домены/поддомены
вариант просто реализовать
но есть проблемка
называется CORS
шоб ты понимал браузер отрежет все твои подзапросы к другому сайту
а поддомен для него это другой сайт
решаемо...но всеже
Perun пишет:
либо на одном домене но разные страничк
типа да
Perun пишет:
А если это динамические странички, и нужно каждый день
значит у тебя ахеренно успешная тема
не выеживайся и нанимай каунтри-мэнеджеров
лепи все тексты через переводчик(надеюсь нагуглил что это)
сложно значит сложно
серебряной пули не изобрели
успокоил твои нервы?
 
 Top
Perun
Отправлено: 01 Мая, 2019 - 15:35:12
Post Id


Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2016  


Помог: 0 раз(а)




LIME пишет:
успокоил твои нервы?

Даже не думал нервничать) Но все равно спасибо.
 
 Top
LIME
Отправлено: 01 Мая, 2019 - 16:14:39
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Perun пишет:
либо на одном домене но разные странички.
я кажется неверно понял
неееет нет нет
не разные
страничка одна но все текстовые лексемы выводим в шаблоне через функцию переводчик
например
PHP:
скопировать код в буфер обмена
  1. echo _('это строчка на русском');

PHP:
скопировать код в буфер обмена
  1. function _(string $text) {
  2.     return дай_мне_из_базы_или_текстового_файла->text;
  3. }

функция переводчик
переводы автоматически или вручную регистрируются в админке
и проставляются переводы
можно по ключу

теперь перечитай выше инфу
сорь что недопонял
рецепт давно изобретен и юзается во всех маломальских фреймворках или цмс
 
 Top
Vladimir Kheifets
Отправлено: 03 Мая, 2019 - 12:59:49
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Perun пишет:
...А если это динамические странички, и нужно каждый день, а то и по несколько десятков раз на день менять/добавлять не только ценники и названия товаров например для интернет магазина, а и выводить новые/редактировать имеющиеся массивы текста в виде статей, новостей и т.п.?

Добрый день!
Попробуйте сделать так:
1. Создайте одну или несколько таблиц в БД со следующими столбацами: id, ru, de, en, fr и.т.д. по столбцу на каждый язык.
2. Далее Вам нужно написать программу для заполнения таких таблиц.
3. Затем нужно выбрать все тексты из статического сайта и записать их в БД.
4. Вам потребуется функция, которая будет выбирать текты из БД
Спойлер (Отобразить)
5. Это пример вставки текста
Спойлер (Отобразить)

Ниже скиншоты сайта https://www[dot]alto-booking[dot]com/demo , на котором работает, описанное выше.
Прикреплено изображение (Нажмите для увеличения)
Untitled-5.gif
 
 Top
Perun
Отправлено: 03 Мая, 2019 - 13:05:56
Post Id


Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2016  


Помог: 0 раз(а)




Большое спасибо. Я пока только знакомлюсь с БД. Как продвинусь в этом вопросе, обязательно перечитаю все подсказки и советы!

(Отредактировано автором: 03 Мая, 2019 - 13:09:11)

 
 Top
LIME
Отправлено: 03 Мая, 2019 - 13:06:28
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Нет не делай так
По столбцу на язык
Рукалицо
 
 Top
Строитель Модератор
Отправлено: 03 Мая, 2019 - 13:16:50
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




LIME пишет:
Рукалицо


Спойлер (Отобразить)
 
 Top
LIME
Отправлено: 03 Мая, 2019 - 13:22:44
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Нееет
Тут уместнее видео как мальчик хочет шикаладку и плачет
Логика прибита гвоздями к инфраструктуре
Я реву навзрыд
Но ладно
На мелких проектах делайте как хотите
(Добавление)
А еще можно хотеть переводы привязать к релизу
Тогда текстовый файл удобнее
Тогда уже и пожалеешь что к инфраструктуре прибит намертво
 
 Top
Lolya
Отправлено: 09 Мая, 2019 - 10:00:47
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Май 2018  


Помог: 2 раз(а)




Vladimir Kheifets пишет:
Попробуйте сделать так:
1. Создайте одну или несколько таблиц в БД со следующими столбацами: id, ru, de, en, fr и.т.д. по столбцу на каждый язык.
2. Далее Вам нужно написать программу для заполнения таких таблиц.
3. Затем нужно выбрать все тексты из статического сайта и записать их в БД..


О майнгад.. Однако Вы представляете НА СКОЛЬКО увеличится объем БД ???
Никогда не делайте так, это же бред и засерание БД лишней инфой. Чем больше объем БД, тем скорость меньше считывания, да и запросов будет - повесится можно...

Выход только один: сразу писать на 2-х языках, Английском и Русском, это самые пользуемые языки, их все учат, даже в странах азии.

(Отредактировано автором: 09 Мая, 2019 - 10:01:28)

 
 Top
LIME
Отправлено: 09 Мая, 2019 - 10:26:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Lolya нет
Направление верное предложено
Вернее разжевано)
Реализация хромает
Можно тексты через переводчик по ключу в шаблон вставлять
Я вот работал с ресурсами на более 10 языках
 
 Top
Lolya
Отправлено: 09 Мая, 2019 - 11:31:53
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Май 2018  


Помог: 2 раз(а)




LIME пишет:
Lolya нет

Что нет? У меня самопис-переделка TBDev трекера, реализовано аж 3 языка. Но все они завязаны на меню и страницы с функцией что вбиты в страницу языка (три страницы - Английский, Русский, Украинский). Что юзер выбрал (язык), на таком все страницы и показывает, а вот внутри (наполнение) уже из БД берется в том, в чем изначально туды залито, у меня это Английский/русский сразу, так как сайт в основном для запада. Украинцам юзать проще через украинское меню сайт, ну и читать на русском, или английском.

А брать из БД описание, допустим на Английском и через автоперевод вставлять в страницу Русским/Украинским - бред. Вы хоть раз этот переводчик видели? Там такой бред выходит в самых неожиданных местах... Ха-ха
 
 Top
Vladimir Kheifets
Отправлено: 09 Мая, 2019 - 11:58:10
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




LIME пишет:
Lolya нет
Направление верное предложено
Вернее разжевано)
Реализация хромает
Можно тексты через переводчик по ключу в шаблон вставлять
Я вот работал с ресурсами на более 10 языках


Я попробовал на примере из Вашего сообщения:
Спойлер (Отобразить)
ещё один пример, текст на немецком:
Das Oktoberfest generiert in den zwei Wochen jährlich durchschnittlich eine Milliarde Euro Umsatz.
При автопереводе на русский, текст искажается по смыслу:
Октоберфест генерирует в среднем один миллиард евро продаж каждые две недели.
автоперевод части текста
in den zwei Wochen jährlich => в течение двух недель ежегодно

(Отредактировано автором: 09 Мая, 2019 - 12:32:45)

 
 Top
LIME
Отправлено: 09 Мая, 2019 - 13:52:00
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Lolya пишет:
У меня самопис-переделка TBDev трекера, реализовано аж 3 языка.
я таки вас сердечно))
какой еще такой "автоперевод"??!!
вы откуда это взяли вообще
функция-переводчик
Vladimir Kheifets не по столбцу на язык а по записи на язык
переводчик берет ключ и текущий язык и вытаскивает перевод
и не надо внутри метода явно лезть в бд
лучше использовать метод какого-нибудь класса-репозитория
тогда можно менять хранилища как перчатки и трогать при этом только репозиторий
а вернее менять его на другой тогоже интерфейса если уметь IoC и как правило DI
таким образом слои логики и инфраструктуры разделяются и мы становимся ГибШе)
(Добавление)
ну и раз пошла такая пьянка то и язык лучше получать из какого-нибудь класса UserContext
который внедрять в переводчик и который знает как выбирается язык
таким образом вам и единственность ответственности и разделение интерфейсов
полная любовь
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB