Мультиязычность статей InstantCMS 2

Интеграция transposh в InstantCMS 2

 
Посетитель
small user social cms
Сообщений: 11
Добрый день! Возникла идея сделать мультиязычными статьи, новости и тд, кроме Админки в версии InstantCMS 2
Сам сделать это не смогу, но с удовольствием куплю платную доработку к инстанту в виде дополнения. Я думаю это будет бомба, если это кто то сделает.
Подсказки для разработчиков:
Сайт разработчика дополнения: http://transposh.org
Далее, такой же плагин существует и в wordpress. Думаю его переделать будет гораздо проще, чем оригинальный. Ссылка на сайт плагина wordpress: https://ru.wordpress.org/plugins/transposh-translation-filter-for-wordpress
Что скажете, господа разработчики? Получится под InstantCMS 2 подогнать?
Делитесь своими мнениями....
Посетитель
small user social cms
Сообщений: 27
Здравствуйте!
Можно ли реализовать такую задачу в виде компонента (т. е. без вмешательства в код движка) сказать не могу, нужно смотреть все ли нужные события есть. Для себя я хардкодил, взял за основу Wordpress плагин qTranslate, дописал пару методов:
Код PHP:
  1.  
  2. public static function langExist($lang = false) {
  3. $languages = self::getLanguages();
  4. return in_array($lang, $languages);
  5. }
  6.  
  7. public static function splitToLanguages($text = false, $quicktags = true) {
  8. if (!$text) { return false; }
  9.  
  10. $languages = self::getLanguages();
  11.  
  12. //init vars
  13. $split_regex = "#(<!--[^-]*-->|\[:[a-z]{2}\])#ism";
  14. $current_language = "";
  15. $matches = "";
  16. $result = array();
  17. foreach ($languages as $language) {
  18. $result[$language] = "";
  19. }
  20.  
  21. // split text at all xml comments
  22. $blocks = preg_split($split_regex, $text, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
  23. foreach ($blocks as $block) {
  24. # detect language tags
  25. if (preg_match("#^<!--:([a-z]{2})-->$#ism", $block, $matches)) {
  26. if (self::langExist($matches[1], $languages)) {
  27. $current_language = $matches[1];
  28. } else {
  29. $current_language = "invalid";
  30. }
  31. continue;
  32. // detect quicktags
  33. } elseif ($quicktags && preg_match("#^\[:([a-z]{2})\]$#ism", $block, $matches)) {
  34. if (self::langExist($matches[1], $languages)) {
  35. $current_language = $matches[1];
  36. } else {
  37. $current_language = "invalid";
  38. }
  39. continue;
  40. // detect ending tags
  41. } elseif (preg_match("#^<!--:-->$#ism", $block, $matches)) {
  42. $current_language = "";
  43. continue;
  44. // detect defective more tag
  45. }
  46. // correctly categorize text block
  47. if ($current_language == "") {
  48. // general block, add to all languages
  49. foreach ($languages as $language) {
  50. $result[$language] .= $block;
  51. }
  52. } elseif ($current_language != "invalid") {
  53. // specific block, only add to active language
  54. $result[$current_language] .= $block;
  55. }
  56. }
  57. return $result;
  58. }
  59.  
  60. public static function returnCurrentLangText($text = false, $return_lang = false){
  61. if (!$text) { return false; }
  62.  
  63. $config = cmsConfig::getInstance();
  64. $languages = self::getLanguages();
  65.  
  66. $result = self::splitToLanguages($text);
  67.  
  68. if (!$return_lang) {
  69. return $result[$config->language];
  70. } else {
  71. return self::langExist($return_lang, $languages) ? $result[$return_lang] : false;
  72. }
  73. }
  74.  
А затем в моделях вызывал по такому принципу:
Код PHP:
  1.  
  2. if (isset($item['content'])) {
  3. $item['content'] = $core::returnCurrentLangText($item['content']);
  4. }
  5.  
Хотел запостить в блоге, кармы не хватает.
Реклама
cms
Посетитель
small user social cms
Сообщений: 27
А, забыл еще. Текст при добавлении выглядит так: [:ru]Рыба текст[:en]Fish text
Редактировалось: 1 раз (Последний: 30 сентября 2015 в 15:43)
Посетитель
small user social cms
Медаль
Сообщений: 195
Давно болею этой идеей. Сейчас как раз занят написанием этого компонента. Скоро будет готов.
СельхозМолл (сделано на Инстанте 2
Посетитель
no avatar
Сообщений: 79
Я лично почти доделал возможность полной мультиязычности, не только одного языка... Демо Дороговатая вещь будет.
Контакты:
Skype: Bajex24
Mail: [email protected]
vk: https://vk.com/id124413197
Посетитель
no avatar
Медаль
Сообщений: 649
Bajex:
Я лично почти доделал возможность полной мультиязычности, не только одного языка...Демо Дороговатая вещь будет.

А мультиязычность для каких компонентов? И для компонентов ли только?
Ваш надеждый хостинг для сайтов на InstantCMS: http://instanthosting.ru
Посетитель
no avatar
Сообщений: 79
Виджеты, сайт, Компоненты нужно отдельно рассматривать.
Контакты:
Skype: Bajex24
Mail: [email protected]
vk: https://vk.com/id124413197
Посетитель
no avatar
Медаль
Сообщений: 649
Bajex:
Виджеты, сайт, Компоненты нужно отдельно рассматривать.

И сколько все это добро будет стоить?
Ваш надеждый хостинг для сайтов на InstantCMS: http://instanthosting.ru
Посетитель
no avatar
Сообщений: 79
Пока думаю. 1000-2000 примерно.
Контакты:
Skype: Bajex24
Mail: [email protected]
vk: https://vk.com/id124413197
Посетитель
no avatar
Медаль
Сообщений: 649
Bajex:
Пока думаю. 1000-2000 примерно.

А SEO-оптимизация поддерживается локализациями? Как насчет автоопределения языка для пользователя?
Ваш надеждый хостинг для сайтов на InstantCMS: http://instanthosting.ru
Посетитель
no avatar
Сообщений: 79
Автоопределение, это еще писать надо компонент, сео и т.д. на каждом языке свое заполнять можно
Контакты:
Skype: Bajex24
Mail: [email protected]
vk: https://vk.com/id124413197
Посетитель
no avatar
Медаль
Сообщений: 230
Иван Шкута:

Давно болею этой идеей. Сейчас как раз занят написанием этого компонента. Скоро будет готов.

Добрый день.
Когда напишете модуль,
поделитесь пожалуйста информацией,
готов рассмотреть покупку модуля мультиязычности.
Посетитель
small user social cms
Медаль
Сообщений: 195
AVPRT, ok. Думаю ничто не помешает мне выложить этот компонент бесплатно.
СельхозМолл (сделано на Инстанте 2
Посетитель
small user social cms
Медаль
Сообщений: 195
Готово! Можно пользоваться: http://addons.instantcms.ru/addons/unilang.html
СельхозМолл (сделано на Инстанте 2
Посетитель
small user social cms
Медаль
Сообщений: 192
Bajex:
Компоненты нужно отдельно рассматривать.
Рассмотрите, пожалуйста. Очень надо.
Если будет поддержка мультиязычности: контента, виджетов, инстантмапса я буду первый в рядах покупателей.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.