🗊Игорь Бровченко Киев, 16 мая 2009 Интернационализация и локализация в Symfony

Категория: Образование
Нажмите для полного просмотра!
Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №1Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №2Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №3Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №4Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №5Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №6Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №7Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №8Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №9Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №10Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №11Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №12Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №13Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №14Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №15Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №16Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №17Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №18Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №19Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №20Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №21Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №22Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №23Игорь Бровченко Киев, 16 мая 2009  Интернационализация и локализация в Symfony, слайд №24

Содержание

Вы можете ознакомиться и скачать Игорь Бровченко Киев, 16 мая 2009 Интернационализация и локализация в Symfony. Презентация содержит 24 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Игорь Бровченко
Киев, 16 мая 2009
Интернационализация и локализация в Symfony
Описание слайда:
Игорь Бровченко Киев, 16 мая 2009 Интернационализация и локализация в Symfony

Слайд 2





Что такое I18n и L10n?
Интернационализа́ция (англ. internationalization) — процесс адаптации продукта, такого как программное или аппаратное обеспечение, к языковым и культурным особенностям региона (регионов), отличного от того, в котором разрабатывался продукт. В английском языке для слова «internationalization» принято сокращение «i18n». При этом число 18 означает количество пропущенных между «i» и «n» букв.
Локализа́ция (англ. localization) — перевод и адаптация элементов интерфейса, вспомогательных файлов и документации. В английском языке для слова «localization» иногда применяется сокращение «l10n». При этом число 10 означает количество пропущенных между «l» и «n» букв.
Источник: ВикипедиЯ
Описание слайда:
Что такое I18n и L10n? Интернационализа́ция (англ. internationalization) — процесс адаптации продукта, такого как программное или аппаратное обеспечение, к языковым и культурным особенностям региона (регионов), отличного от того, в котором разрабатывался продукт. В английском языке для слова «internationalization» принято сокращение «i18n». При этом число 18 означает количество пропущенных между «i» и «n» букв. Локализа́ция (англ. localization) — перевод и адаптация элементов интерфейса, вспомогательных файлов и документации. В английском языке для слова «localization» иногда применяется сокращение «l10n». При этом число 10 означает количество пропущенных между «l» и «n» букв. Источник: ВикипедиЯ

Слайд 3





Поддержка I18n и L10n в Symfony?
 Предоставление региональных данных для всех языков
 Перевод текстов (интерфейс, данные БД)
 Стандарты форматирования дат и чисел в зависимости от региональных настроек
Описание слайда:
Поддержка I18n и L10n в Symfony? Предоставление региональных данных для всех языков Перевод текстов (интерфейс, данные БД) Стандарты форматирования дат и чисел в зависимости от региональных настроек

Слайд 4






Все данные для интернационализации (I18n) получены из Common Locale Data Repository (CLDR).
Описание слайда:
Все данные для интернационализации (I18n) получены из Common Locale Data Repository (CLDR).

Слайд 5





Указываем Culture по умолчанию
  # frontend/config/settings.yml
  all:
    .settings:
      default_culture: ru
Описание слайда:
Указываем Culture по умолчанию # frontend/config/settings.yml all: .settings: default_culture: ru

Слайд 6





Использование Culture в Action
  // Установить Culture
  $this->getUser()->setCulture('ru');
   
  // Получить Culture
  $culture = $this->getUser()->getCulture();
  // => ru
Описание слайда:
Использование Culture в Action // Установить Culture $this->getUser()->setCulture('ru'); // Получить Culture $culture = $this->getUser()->getCulture(); // => ru

Слайд 7





Использование Culture в Template
  <span>
	<?php echo $sf_user->getCulture() ?>
  </span>
Описание слайда:
Использование Culture в Template <span> <?php echo $sf_user->getCulture() ?> </span>

Слайд 8





Создание многоязычного сайта
  # frontend/config/routing.yml
  news_list:
    url: /:sf_culture/news
    param: { module: news, action: index }
    requirements: { sf_culture: (?:uk|ru|en) }
Описание слайда:
Создание многоязычного сайта # frontend/config/routing.yml news_list: url: /:sf_culture/news param: { module: news, action: index } requirements: { sf_culture: (?:uk|ru|en) }

Слайд 9





Демонстрация возможностей I18n (код)
  <?php 
    $sf_user->setCulture('en_US');
    echo $sf_user->getCulture();
    echo format_number(12000.10);
    echo format_date(time());
    echo format_datetime(time());
    echo format_currency(1350, 'USD');
  ?>
Описание слайда:
Демонстрация возможностей I18n (код) <?php $sf_user->setCulture('en_US'); echo $sf_user->getCulture(); echo format_number(12000.10); echo format_date(time()); echo format_datetime(time()); echo format_currency(1350, 'USD'); ?>

Слайд 10





Результат для различных Culture
  en_US
  12,000.1
  5/15/09
  May 15, 2009 9:20:02 PM EEST
  $1,350.00
  en_GB
  12,000.1
  15/05/2009
  15 May 2009 21:20:02 EEST
  US$1,350.00
Описание слайда:
Результат для различных Culture en_US 12,000.1 5/15/09 May 15, 2009 9:20:02 PM EEST $1,350.00 en_GB 12,000.1 15/05/2009 15 May 2009 21:20:02 EEST US$1,350.00

Слайд 11





Widgets с поддержкой I18n
sfWidgetFormI18nDate
sfWidgetFormI18nTime
sfWidgetFormI18nDateTime
sfWidgetFormI18nSelectCountry
sfWidgetFormI18nSelectLanguage
sfWidgetFormI18nSelectCurrency
Описание слайда:
Widgets с поддержкой I18n sfWidgetFormI18nDate sfWidgetFormI18nTime sfWidgetFormI18nDateTime sfWidgetFormI18nSelectCountry sfWidgetFormI18nSelectLanguage sfWidgetFormI18nSelectCurrency

Слайд 12





Локализация данных в БД
    propel:
      my_product:
        _attributes:    { isI18N: true, i18nTable: my_product_i18n }
        id:                  ~
        slug:              { type: varchar, size: 255 }
        price:             { type: float }
      my_product_i18n:
        name:            { type: varchar, size: 255 }
Описание слайда:
Локализация данных в БД propel: my_product: _attributes: { isI18N: true, i18nTable: my_product_i18n } id: ~ slug: { type: varchar, size: 255 } price: { type: float } my_product_i18n: name: { type: varchar, size: 255 }

Слайд 13





Включение локализации интерфейса
  # frontend/config/settings.yml
  all:
    .settings:
      i18n: on
  
      standard_helpers: [Partial, Form, I18N ]
Описание слайда:
Включение локализации интерфейса # frontend/config/settings.yml all: .settings: i18n: on standard_helpers: [Partial, Form, I18N ]

Слайд 14





Пример использования локализации
  <?php echo __('Welcome to our website.') ?>
  <?php echo __("Today's date is ") ?>
Описание слайда:
Пример использования локализации <?php echo __('Welcome to our website.') ?> <?php echo __("Today's date is ") ?>

Слайд 15





Словарь в формате XLIFF
  # frontend/i18n/messages.fr.xml
  <?xml version="1.0" ?>
  <xliff version="1.0">
    <file original="global" source-language="en_US" datatype="plaintext">
      <body>
        <trans-unit id="1">
          <source>Welcome to our website.</source>
          <target>Bienvenue sur notre site web.</target>
        </trans-unit>
        <trans-unit id="2">
          <source>Today's date is </source>
          <target>La date d'aujourd'hui est </target>
        </trans-unit>
      </body>
    </file>
  </xliff>
Описание слайда:
Словарь в формате XLIFF # frontend/i18n/messages.fr.xml <?xml version="1.0" ?> <xliff version="1.0"> <file original="global" source-language="en_US" datatype="plaintext"> <body> <trans-unit id="1"> <source>Welcome to our website.</source> <target>Bienvenue sur notre site web.</target> </trans-unit> <trans-unit id="2"> <source>Today's date is </source> <target>La date d'aujourd'hui est </target> </trans-unit> </body> </file> </xliff>

Слайд 16





Локализация с указанием словаря
  <?php echo __('Welcome to our website.', null, 'navigation') ?>
  <?php echo __("Today's date is ") ?>
Описание слайда:
Локализация с указанием словаря <?php echo __('Welcome to our website.', null, 'navigation') ?> <?php echo __("Today's date is ") ?>

Слайд 17





Настройка локализации
  # frontend/config/factories.yml
  i18n:
    class: sfI18N
    param:
      source:               XLIFF
      debug:                off
      untranslated_prefix:  "[T]"
      untranslated_suffix:  "[/T]"
      cache:
        class: sfFileCache
        param:
          automatic_cleaning_factor: 0
          cache_dir:                 %SF_I18N_CACHE_DIR%
          lifetime:                  31556926
          prefix:                    %SF_APP_DIR%/i18n
Описание слайда:
Настройка локализации # frontend/config/factories.yml i18n: class: sfI18N param: source: XLIFF debug: off untranslated_prefix: "[T]" untranslated_suffix: "[/T]" cache: class: sfFileCache param: automatic_cleaning_factor: 0 cache_dir: %SF_I18N_CACHE_DIR% lifetime: 31556926 prefix: %SF_APP_DIR%/i18n

Слайд 18





Задачи (tasks) для локализации
> php symfony i18n:extract frontend en
> php symfony i18n:extract --auto-save frontend en
> php symfony i18n:extract --auto-save --auto-delete frontend en
Ограничения:
команды работают только с стандартным словарем messages
Описание слайда:
Задачи (tasks) для локализации > php symfony i18n:extract frontend en > php symfony i18n:extract --auto-save frontend en > php symfony i18n:extract --auto-save --auto-delete frontend en Ограничения: команды работают только с стандартным словарем messages

Слайд 19





Настройка локализации для работы с БД
  # frontend/config/factories.yml
  i18n:
    class: sfI18N
    param:
      source:               MySQL  # XLIFF
      debug:                off
      untranslated_prefix:  "[T]"
      untranslated_suffix:  "[/T]"
      cache:
        class: sfFileCache
        param:
          automatic_cleaning_factor: 0
          cache_dir:                 %SF_I18N_CACHE_DIR%
          lifetime:                  31556926
          prefix:                    %SF_APP_DIR%/i18n
Описание слайда:
Настройка локализации для работы с БД # frontend/config/factories.yml i18n: class: sfI18N param: source: MySQL # XLIFF debug: off untranslated_prefix: "[T]" untranslated_suffix: "[/T]" cache: class: sfFileCache param: automatic_cleaning_factor: 0 cache_dir: %SF_I18N_CACHE_DIR% lifetime: 31556926 prefix: %SF_APP_DIR%/i18n

Слайд 20





Создание таблиц для локализации в БД
  CREATE TABLE `catalogue` (
    `cat_id` int(11) NOT NULL auto_increment,
    `name` varchar(100) NOT NULL default '',
    `source_lang` varchar(100) NOT NULL default '',
    `target_lang` varchar(100) NOT NULL default '',
    `date_created` int(11) NOT NULL default '0',
    `date_modified` int(11) NOT NULL default '0',
    `author` varchar(255) NOT NULL default '',
    PRIMARY KEY  (`cat_id`)
  ) TYPE=InnoDB;
Описание слайда:
Создание таблиц для локализации в БД CREATE TABLE `catalogue` ( `cat_id` int(11) NOT NULL auto_increment, `name` varchar(100) NOT NULL default '', `source_lang` varchar(100) NOT NULL default '', `target_lang` varchar(100) NOT NULL default '', `date_created` int(11) NOT NULL default '0', `date_modified` int(11) NOT NULL default '0', `author` varchar(255) NOT NULL default '', PRIMARY KEY (`cat_id`) ) TYPE=InnoDB;

Слайд 21





Проблемы при использовании БД для локализации
Для работы с локализацией через источник (source) MySQL
открывается ещё один коннект к БД
При загрузке страницы выполняется несколько дополнительных запросов
Структура таблиц крайне неудобная для работы в Админке
Описание слайда:
Проблемы при использовании БД для локализации Для работы с локализацией через источник (source) MySQL открывается ещё один коннект к БД При загрузке страницы выполняется несколько дополнительных запросов Структура таблиц крайне неудобная для работы в Админке

Слайд 22





Образец модуля «Локализация» для Админки
Описание слайда:
Образец модуля «Локализация» для Админки

Слайд 23





Решение проблемы с БД для локализации
Был написан свой класс источника (source) для sfI18N -  sfMessageSource_PDO.class.php
Это позволило использовать текущее соединение с БД через PDO
Была переписана структура таблиц, чтобы редактировать данные в Админке стало проще — использовали generate-admin и embedI18n
Были устранены проблемы с лишними запросами к БД
Описание слайда:
Решение проблемы с БД для локализации Был написан свой класс источника (source) для sfI18N - sfMessageSource_PDO.class.php Это позволило использовать текущее соединение с БД через PDO Была переписана структура таблиц, чтобы редактировать данные в Админке стало проще — использовали generate-admin и embedI18n Были устранены проблемы с лишними запросами к БД

Слайд 24





Вопросы?
Игорь Бровченко
Igor.Brovchenko@gmail.com
http://tigor.com.ua
http://www.linkedin.com/in/IgorBrovchenko
Описание слайда:
Вопросы? Игорь Бровченко Igor.Brovchenko@gmail.com http://tigor.com.ua http://www.linkedin.com/in/IgorBrovchenko



Похожие презентации
Mypresentation.ru
Загрузить презентацию