Как изменить язык в браузере белки

Обновлено: 20.11.2024

Драйвер JDBC можно использовать для подключения к Drill из SQuirrel и выполнения запросов SQL. Убедитесь, что ваша система соответствует предварительным требованиям, а затем выполните перечисленные действия.

Предпосылки

  • SQuirreL требует JRE 7.
  • Drilling устанавливается в распределенном режиме на одном или нескольких узлах кластера. Дополнительную информацию см. в документации по установке Drill.
  • Клиент должен иметь возможность сопоставить фактическое имя хоста узла (узлов) Drill с IP-адресами. Убедитесь, что на клиентском компьютере была создана запись DNS для узлов Drill.

Если запись DNS не существует, создайте запись для узлов детализации.

Пример: 127.0.1.1 maprdemo

Шаг 1. Получение драйвера JDBC Drill

JAR-файл драйвера Drill JDBC Driver должен существовать в каталоге на вашем компьютере с Windows, чтобы можно было настроить драйвер в клиенте SQuirreL.

Вы можете скопировать JAR-файл Drill JDBC из следующего каталога установки Drill на узле с установленным Drill в каталог на вашем компьютере с Windows:

Или загрузите файл TAR для последней версии Drill в папку на вашем компьютере с Windows и извлеките содержимое файла. Возможно, вам придется использовать утилиту распаковки, например 7-zip, для распаковки архива. После извлечения вы можете найти драйвер в следующем каталоге:

Шаг 2. Установка и запуск SQuirreL

Чтобы установить и запустить SQuirreL, выполните следующие действия:

  1. Загрузите JAR-файл SQuirreL для Windows из следующего места:
  1. Дважды щелкните JAR-файл SQuirreL. Мастер установки SQuirreL проведет вас через процесс установки.
  2. По завершении установки перейдите в папку установки SQuirreL и дважды щелкните файл squirrel-sql.bat, чтобы запустить SQuirreL.

Шаг 3. Добавление драйвера JDBC Drill в SQuirreL

Чтобы добавить драйвер JDBC Drill в SQuirreL, определите драйвер и создайте псевдоним базы данных. Псевдоним — это конкретный экземпляр конфигурации драйвера. SQuirreL использует определение драйвера и псевдоним для подключения к Drill, чтобы вы могли получить доступ к источникам данных, которые вы зарегистрировали в Drill.

А. Определите драйвер

Чтобы определить драйвер JDBC Drill, выполните следующие действия:

На панели инструментов SQuirreL выберите «Драйверы» > «Новый драйвер». Появится диалоговое окно "Добавить драйвер".

Введите следующую информацию:

Нажмите "ОК". Клиент SQuirreL отображает сообщение об успешной регистрации драйвера, и вы можете увидеть драйвер на панели «Драйверы».

Б. Создать псевдоним

Чтобы создать псевдоним, выполните следующие действия:

На панели инструментов SQuirreL выберите «Псевдонимы» > «Новый псевдоним». Появится диалоговое окно "Добавить псевдоним".

Введите следующую информацию:

  • Псевдоним: уникальное имя псевдонима драйвера JDBC Drill.
  • Драйвер: выберите драйвер Drill JDBC
  • URL: введите URL-адрес подключения с именем каталога Drill, хранящегося в ZooKeeper, и идентификатором кластера, как показано в следующем разделе.
  • Имя пользователя: admin
  • Пароль: admin

Нажмите "ОК". Появится диалоговое окно Подключиться к:.

Нажмите Подключиться. SQuirreL отображает сообщение об успешном подключении.

Ввод URL-адреса подключения

На шаге 3 процедуры создания псевдонима используйте следующий синтаксис для ввода URL-адреса подключения, который включает имя каталога Drill, хранящегося в ZooKeeper, и идентификатор кластера:

В следующих примерах показаны URL-адреса для Drill, установленного на одном узле:

В следующем примере показан URL-адрес для Drill, установленного в распределенном режиме с подключением к кворуму ZooKeeper:

  • Включать схему по умолчанию необязательно.
  • Порт ZooKeeper — 2181. В кластере MapR порт ZooKeeper — 5181.
  • Каталог Drill, хранящийся в ZooKeeper, называется /drill .
  • Идентификатор кластера Drill по умолчанию — Drillbits1.

Шаг 4. Запуск запроса детализации из SQuirreL

После успешного подключения SQuirreL к кластеру с помощью драйвера JDBC Drill вы можете выполнять запросы от клиента SQuirreL. Вы можете выполнить тестовый запрос для некоторых примеров данных, включенных в установку Drill, чтобы опробовать SQuirreL с помощью Drill.

Чтобы запросить образцы данных с помощью Squirrel, выполните следующие действия:

Введите следующий запрос в поле запроса:

Пример:

Нажмите Ctrl+Enter, чтобы выполнить запрос. Отобразятся следующие результаты запроса:

Вы успешно выполнили запрос Drill из клиента SQuirreL.

Авторское право © 2012–2020 The Apache Software Foundation, лицензия Apache License, версия 2.0.
Apache и логотип Apache с перьями являются товарными знаками Apache Software Foundation. Другие названия, встречающиеся на сайте, могут быть товарными знаками соответствующих владельцев.

Клиент SQL: что это такое, каковы его преимущества и как начать его использовать.

Базы данных SQL и отчетность

Сегодняшний бизнес-ландшафт

большими данными, и их становится все больше и больше. Сейчас средняя компания хранит 163 терабайта (163 000 гигабайт) информации

достаточно места для

40 000 полнометражных фильмов на DVD.

Большая часть этих данных хранится

в реляционных базах данных, в которых данные следуют

в таблицы со строками и столбцами. Работники данных могут получить доступ к информации внутри реляционной базы данных, используя язык SQL (язык структурированных запросов), который

для запроса и редактирования информации.

Однако предприятия

когда дело доходит до

Базы данных SQL: Microsoft SQL Server, Oracle Database, MySQL, IBM DB2 и десятки других альтернатив.

Чтобы справиться со всей этой сложностью, клиенты SQL пытаются предоставить «универсальный магазин» для пользователей, которым нужен простой способ взаимодействия с этими различными типами баз данных SQL, например, переводчик, говорящий на нескольких языках.

Клиенты SQL — это программные приложения, которые позволяют просматривать модель реляционной базы данных, просматривать информацию внутри базы данных и создавать SQL-запросы. Точно так же, как вы используете веб-браузер на своем компьютере для доступа к веб-сайтам, хранящимся на других компьютерах, вы используете

клиент для доступа к данным, хранящимся в удаленной базе данных. Клиенты SQL пытаются придать битам и байтам внутри реляционной базы данных более «удобный для человека» вид.

Что такое

SQL — это клиент для доступа к базам данных SQL через удобный графический интерфейс пользователя (графический пользовательский интерфейс). Потому что

SQL написан на языке программирования Java, он может работать на любом компьютере с JVM (виртуальная машина Java).

Кроме того,

способен взаимодействовать

с любой реляционной базой данных

совместим с интерфейсом JDBC (Java Database Connectivity). Сюда входят самые популярные реляционные базы данных, такие как

Майкрософт SQL Server

бесплатно — "бесплатно" как по цене, так и по исходному коду.

SQL использует GNU

Лицензия версии 2.0 — самый популярный вариант для программного обеспечения с открытым исходным кодом. Программное обеспечение доступно на дюжине различных языков, включая английский, испанский, французский, немецкий, русский, португальский и китайский.

SQL полезен для всех, кто взаимодействует с базами данных SQL

регулярно

: администраторы приложений, разработчики программного обеспечения, тестировщики программного обеспечения, администраторы баз данных и т. д.

Например, администратор приложения может использовать

SQL для исправления ошибки программного приложения на уровне базы данных. Использование

SQL, администратору гораздо проще найти неверное значение в таблице, а затем исправить его, введя новое значение.

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

SQL может помочь администраторам баз данных управлять базами данных под их командованием, просматривать метаданные и проверять наличие проблем с таблицами.

Преимущества

Любой, кто много работал с базами данных SQL, знает, как сложно писать длинные запросы

или работать с разными

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

SQL решает эту проблему, предоставляя пользователям единый согласованный интерфейс

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

SQL — это все, что вам нужно.

База данных SQL имеет некоторые нестандартные «причуды» или поведение, для которых можно установить подключаемый модуль Java

SQL, что делает его полностью способным обрабатывать эти операции. Плагины, доступные для

выполнять такие задачи

Импорт данных из файлов Excel и CSV в базу данных (плагин для импорта данных)

Копирование и сравнение таблиц между разными сеансами (

Хранение «закладок» для часто используемых фрагментов кода SQL (подключаемый модуль SQL Bookmarks)

Проверка ваших SQL-запросов на соответствие стандарту ISO SQL (SQL

Добавление функций для типов баз данных SQL, таких как IBM DB2, Firebird RDBMS, H2 и Apache Derby (подключаемый модуль DB2, подключаемый модуль Firebird, подключаемый модуль Derby,

Как использовать

Установка

SQL, сначала необходимо установить Java. Точная версия Java, которая вам нужна, будет зависеть от версии

вы хотите использовать. По состоянию на

SQL версии 3.0, вам потребуется как минимум Java 6; к более старым или более новым версиям программного обеспечения предъявляются другие требования.

SQL доступен на веб-сайте проекта (http://www.squirrelsql.org/) в виде файла пакета JAR. Имя файла будет иметь вид «белка-

-версия-install.jar" или "белка-

-install.jar" для систем Mac OS X, где версия — это версия

SQL с помощью помощника по настройке. Вы можете выбрать любой

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

Следующая задача — запустить программу в первый раз и подключить ее к одной из ваших реляционных баз данных. Для этого требуется два разных шага:

Определение драйвера: сначала нужно указать

SQL для JAR-файла JDBC, содержащего драйвер для корректного файла

Создание псевдонима. Во-вторых, вам нужно использовать драйвер для связи с конкретной базой данных на конкретном компьютере, к которому вы хотите получить доступ.

см. список различных

базы данных, которые поддерживает клиент. Каждая база данных должна иметь либо синий

что драйвер JDBC для этой базы данных находится в вашей JVM

Если тип базы данных SQL, который вы хотите использовать (например, MySQL,

, IBM DB2 и т. д.) отмечен красным крестиком рядом с ним,

драйвер от поставщика базы данных. Загрузите драйвер на локальный компьютер и используйте

SQL, чтобы указать на этот файл.

создайте псевдоним. В строке меню программного обеспечения выберите «Псевдонимы», а затем нажмите «Новый псевдоним». Вы также можете использовать сочетание клавиш Ctrl+N.

для ввода дополнительной информации о базе данных, например URL-адреса, имени пользователя и пароля. В зависимости от

К базе данных SQL, к которой вы обращаетесь, URL-адрес может содержать такие части, как имя компьютера и номер порта. Проконсультируйтесь с администратором базы данных, если вы не уверены, что именно нужно указать в этом поле.

Если вы все сделали правильно, то все! Теперь вы готовы

SQL с вашими любимыми базами данных, совместимыми с JDBC.

Работа с

с базой данных

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

Окно псевдонимов SQL. Это откроет новую сессию. Вы можете открыть несколько сеансов одновременно в

SQL, каждый из которых подключен к отдельной базе данных.

В окне "Сеанс" у вас есть два варианта просмотра базы данных и взаимодействия с ней: вкладка "Объекты" и вкладка "SQL".

Используется вкладка "Объекты"

для просмотра данных и метаданных базы данных. В левой части окна вы можете перемещаться по базе данных в виде дерева. Нажмите на имя таблицы в базе данных, чтобы отобразить содержимое и метаданные этой таблицы, такие как

столбцы и количество содержащихся в них строк.

Вы можете использовать вкладку "Объекты", чтобы

внести изменения

база данных на месте . При просмотре таблицы в редактируемом режиме изменение значения в таблице изменит его значение в самой базе данных. На вкладке "Объекты" также можно вставлять и удалять строки, а также импортировать и экспортировать данные.

Используется вкладка SQL

для более сложных SQL-запросов и операций с базой данных, таких как соединения. Нажав на эту вкладку, вы можете ввести любой текст SQL, который

в базу данных и обрабатывается там.

Результат этой операции возвращается

связанные метаданные.

Как упоминалось выше,

официальные и сторонние подключаемые модули Java для улучшения взаимодействия с пользователем.

Например, с помощью подходящего подключаемого модуля вы также можете создавать «закладки» для наиболее часто используемых шаблонов кода SQL. Чтобы вставить шаблон в

Редактор SQL, используйте сочетание клавиш Ctrl+J. Откроется всплывающее окно, в котором можно выбрать правильный шаблон.

Еще один подключаемый модуль, о котором стоит упомянуть, — это подключаемый модуль Graph, который отображает взаимосвязи между таблицами в вашей базе данных,

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

Ограничения

SQL — очень мощный и полезный инструмент для всех, кто взаимодействует с базами данных SQL, программным обеспечением

имеет некоторые недостатки:

  • Процесс ручной настройки драйверов и псевдонимов может быть сложным для начинающих пользователей.
  • Некоторые пользователи считают, что

Возможности поддержки SQL ограничены. Скорее всего, пользователи должны быть хотя бы средними техническими специалистами

Есть много интересного

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

Хотя вы можете извлечь из этого много полезного

SQL, наиболее ценной частью которого может быть то, как он взаимодействует с другими инструментами SQL, такими как

в сочетании с

SQL, вы можете легко создавать отчеты из различных баз данных SQL, а затем публиковать их в Slack или планировать отчеты по электронной почте в удобное для вас время.

Ищете лучший способ получать запланированные отчеты SQL в своей ленте Slack? Зарегистрируйте бесплатную учетную запись на

чтобы узнать, какую пользу это может принести вашей организации.

Обзоры других редакторов SQL

Хотите сравнить

SQL с другими редакторами SQL? Ознакомьтесь с нашими обзорами!

чтобы увидеть, как легко получать отчеты SQL в Slack. Чего же вы ждете, это бесплатно!

Об авторе

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

В этой главе следует объяснить, как работает интернационализация SquirrelMail, и предоставить информацию о некоторых аспектах реализации.

TODO: удалить статистику и динамически добавить ее на страницу статистики i18n с помощью скрипта.

Массив $languages ​​определен в functions/i18n.php (который был перемещен в include/languages.php в SquirrelMail 1.5.2) и определяет переводы, которые включены в SquirrelMail. Начиная с SquirrelMail 1.5.1, в ядре определена только запись на английском языке; другие языки автоматически добавляются в массив $languages ​​из файла в пакете языковых стандартов: locale/ /setup.php .

Формат массива:

Возможные имена ключей массива: NAME

Набор символов, используемый для перевода.

Полное имя локали (в формате "xx_XX.charset" или в другом формате, требуемом функциями PHP gettext). Начиная с 1.4.4/1.5.1 и выше, «значение» может содержать массив. Если версия PHP старше 4.3.0, система будет использовать только первое имя локали, указанное в массиве. Имя первой локали должно быть совместимо с именами локалей системы FreeBSD. При всех других настройках, если первая локаль не поддерживается, SquirrelMail продолжит пробовать другие локали в порядке, указанном в этом массиве. Разработчики могут проверить наличие поддерживаемых языковых стандартов в своей системе, проверив содержимое, например, /usr/lib/locale/ (RedHat/Fedora).

Любое количество псевдонимов языковых кодов может быть связано с данным переводом путем создания одной записи ALIAS для каждой ссылки. 'language_code' для псевдонима должен содержать псевдоним кода языка, а 'value' должен содержать код языка, который SquirrelMail использует для хранения фактического перевода. Например, норвежский перевод хранится в SquirrelMail как «nb_NO», но у него также есть псевдоним для кода ISO-639-1 «nb». Обратите внимание, что, хотя вы можете объединить любое количество псевдонимов (например, "xx" ==> "yy" ==> "no" ==> "nb_NO"), окончательный код должен указывать на язык, у которого есть ИМЯ и CHARSET, определенные в массиве $languages. Псевдонимы обычно используются для унификации двух- и четырехбуквенных языковых кодов для одного и того же языка (например, «sv» и «sv_SE», которые должны быть одним и тем же шведским переводом). См.: список ISO 639 и список кодов стран

Направление текста языка. Это используется для обозначения языков с письмом справа налево и не требуется в противном случае. Возможные значения: «rtl» или «ltr» (если не определено, по умолчанию используется «ltr»).

Указывает, что в переводе используются специальные функции. (см. главу о функциях XTRA_CODE)

Обратите внимание, что для каждого определения 'language_code' требуются как минимум ключи NAME и CHARSET или только ключ ALIAS. Все остальные ключи являются необязательными.

Функции XTRA_CODE позволяют изменить поведение интерфейса, когда перевод требует специальной обработки некоторых функций SquirrelMail. Функции включаются установкой опции XTRA_CODE в массиве $languages ​​и включением соответствующих функций в locale/language_code/setup.php (SquirrelMail 1.5.x) или functions/i18n.php (SquirrelMail 1.4.x). Первая часть имени функции — это слово, указанное в значении $languages['language_code']['XTRA_CODE']. Вторая часть является одним из специальных ключевых слов. Возможные ключевые слова: _decode

Используется в src/compose.php , src/i18n.php , src/view_text.php и functions/mime.php . Требуется поддержка mbstring.

Используется в src/compose.php и src/read_body.php .

Используется в functions/mime.php . Должен принимать один строковый аргумент и возвращать правильно закодированную строку заголовка MIME.

Используется в functions/mime.php . Функция возврата.

Используется в functions/mime.php .

Используется в functions/imap_utf7_local.php . Функция возврата.

Используется в functions/imap_utf7_local.php . Функция возврата.

Используется в functions/mailbox_display.php . Функция возврата.

Используется в functions/strings.php (sqWordWrap).

Когда SquirrelMail создает HTML-страницы, он использует кодировку, определенную в переводе, выбранном конечным пользователем. Интерфейс может отображать электронные письма, закодированные в разных кодировках. Для отображения символов, которые могут не поддерживаться пользовательской кодировкой, SquirrelMail использует функции декодирования, которые преобразуют символы, отличные от us-ascii, в объекты HTML. Все функции декодирования хранятся в каталоге functions/decode/.

Для некоторых функций декодирования может потребоваться расширение PHP recode или расширение mbstring PHP 4.3+. Если ваша установка PHP не поддерживает их, возможно, вы используете более медленные и ресурсоемкие функции ЦП/памяти.

Имена папок IMAP используют кодировку UTF7-IMAP. Имена папок, хранящиеся в conf.pl, должны быть закодированы в кодировке UTF7-IMAP. SquirrelMail использует внутренние функции, которые преобразуют имена папок из/в кодировку UTF7-IMAP. По умолчанию эти функции работают с кодировкой ISO-8859-1. Другие кодировки поддерживаются только в том случае, если их поддерживает расширение PHP mbstring.

TODO: написать независимую реализацию преобразования кодировки в UTF7-IMAP.

Начиная с версии 1.5.1 SquirrelMail включает поддержку форм множественного числа. Это позволяет использовать правильные формы перевода с цифрами. Например. "У нас на крыше белка %s." и "У нас на крыше %s белок." можно написать одним вызовом функции без проверки фактического количества белок. Функции Gettext также работают с неанглийскими языками, в которых могут использоваться разные словоформы для двух, пяти, десяти и более единиц.

Если авторы подключаемых модулей хотят использовать функции ngettext без повышения требований PHP до версии 4.2.0 с поддержкой Gettext, им следует потребовать версию SquirrelMail не ниже 1.5.1 и использовать функцию sq_change_text_domain вместо отдельных вызовов bindtextdomain и textdomain. Если sq_change_text_domain нельзя использовать, следует использовать функцию sq_bindtextdomain вместо bindtextdomain и функцию sq_textdomain вместо функции textdomain. Если используются эти две последние функции-оболочки SquirrelMail (но опять же, пожалуйста, используйте sq_change_text_domain), нет необходимости вызывать sq_bindtextdomain, когда подключаемый модуль возвращается к домену SquirrelMail.

SquirrelMail использует функцию set_up_language() для настройки языковой среды. Среда настраивается автоматически при загрузке include/validate.php.

SquirrelMail получает язык интерфейса из трех источников: а) предпочтения пользователя. Он устанавливается в «Параметры» -> «Настройки дисплея» -> «Язык». предпочтение использует языковой ключ. Если настройки пользователя недоступны (пользователь не вошел в систему), система пытается извлечь значение языка из файла cookie «squirrelmail_language». б) язык SquirrelMail по умолчанию, заданный в конфигурации (переменная $squirrelmail_default_language). c) настройка предпочтительного языка, предоставляемая браузером. Он используется только в том случае, если для языка SquirrelMail по умолчанию задана пустая строка

Если информация о языке недоступна, SquirrelMail возвращается к переводу на английский язык (США).

Если установка PHP позволяет изменять переменную среды TZ, SquirrelMail позволяет конечным пользователям выбирать другой часовой пояс в своих настройках. Его можно установить в «Параметры» -> «Личная информация» -> «Ваш текущий часовой пояс». Часовой пояс устанавливается автоматически при загрузке include/validate.php.

Если переменную TZ нельзя изменить (PHP работает в безопасном режиме, а переменная не указана в PHP safe_mode_allowed_env_vars), параметры часового пояса пользователя не отображаются, а интерфейс использует часовой пояс веб-сервера по умолчанию.

SquirrelMail 1.5.0 и более ранние версии сохраняют список доступных часовых поясов в locale/timezones.cfg . Начиная с версии 1.5.1 стандартные часовые пояса перемещены в include/timezones/standard.php, а обработка часовых поясов отличается от более старых версий SquirrelMail. Конфигурация часового пояса управляется в утилите конфигурации SquirrelMail ( conf.pl ), 4. Общие параметры> 15. Параметр меню конфигурации часового пояса. Администратор может выбрать стандартную, строгую, пользовательскую и пользовательскую строгую обработку часового пояса.

Стандартная обработка не отличается от предыдущих версий SquirrelMail, и SquirrelMail использует имена часовых поясов GNU C, основанные на географическом местоположении. Строгая обработка использует коды часовых поясов со смещением от GMT. Строгие часовые пояса должны работать в системах, которые не поддерживают именование часовых поясов GNU C. Пользовательская и пользовательская строгая обработка использует файл config/timezones.php вместо include/timezones/standard.php .

Файл config/timezones.php должен хранить массив $aTimeZones с другим набором часовых поясов. См. часовой пояс по умолчанию в include/timezones/standard.php. Например:

Именование часовых поясов GNU C должно поддерживаться многими операционными системами Unix.Это рекомендуемый способ установки часового пояса, поскольку он обрабатывает исторические изменения и летнее время, характерные для выбранного географического местоположения. Строгие часовые пояса могут привести к неточным или устаревшим настройкам часового пояса.

Если изменения в среде TZ видны в журналах вашего веб-сервера (изменено смещение времени), убедитесь, что вы можете воспроизвести такое поведение в последней версии PHP, и сообщите об ошибке разработчикам PHP. Проблема может быть устранена путем блокировки использования часового пояса (безопасный режим PHP и TZ не указан в настройке safe_mode_allowed_env_vars или плагине force_prefs) или путем присоединения специального PHP-скрипта с вызовом putenv('TZ=some time zone') в настройке PHP auto_append_file (предложение не тестируется, и вам, возможно, придется исправить все вызовы выхода SquirrelMail).

Обратите внимание, что использование auto_append_file обеспечивает только временный обходной путь и не исправляет настройки PHP. Сценарий, который запускается от имени непривилегированного пользователя, не должен влиять на систему ведения журнала веб-сервера.

PHP предоставляет функции htmlspecialchars() и htmlentities() для очистки строк HTML. Когда разработчики SquirrelMail хотят очистить символы форматирования HTML, им следует использовать htmlspecialchars() и избегать использования htmlentities() .

htmlentities() по умолчанию использует кодировку ISO-8859-1, очищая восьмибитные символы ISO-8859-1. Другие наборы символов используют те же восьмибитные диапазоны для хранения разных символов, поэтому это нарушит все переводы, не использующие ISO-8859-1.

В зависимости от параметров, htmlspecialchars() очищает только трех-, четырех- или пятисемибитные символы (&, ", ', ). htmlspecialchars() только разбивает строки, закодированные в HTML, используя наборы символов ISO-2022. Наборы символов ISO-2022 используют семь битовых диапазонов для хранения разных символов. Используемая таблица кодирования зависит от escape-последовательностей, присутствующих в тексте ISO-2022.

Опция кодировки добавлена ​​в htmlentities() и htmlspecialchars(), начиная с PHP 4.1.0, но список поддерживаемых кодировок ограничен. Резервная кодировка — это старый добрый и опасный ISO-8859-1.

Различия между двумя функциями можно проверить с помощью функции get_html_translation_table().

Если используются функции декодирования набора символов SquirrelMail, они должны автоматически применять htmlspecialchars() к декодируемой строке. Не пытайтесь дважды использовать htmlspecialchars() для одной и той же строки, так как это может нарушить декодированную строку.

Все переводы SquirrelMail хранятся в каталоге локалей репозитория SquirrelMail. Этот каталог содержит переводы строк SquirrelMail и переводы плагинов. Разработчики плагинов могут использовать свои собственные пакеты перевода или полагаться на переводы в модуле локалей SquirrelMail. Если перевод подключаемого модуля не включен в модуль SquirrelMail, разработчик подключаемого модуля должен переключиться на свой собственный домен gettext, прежде чем использовать собственные строки подключаемого модуля.

Ветвь HEAD модуля locales содержит объединенные строки из веток SquirrelMail DEVEL и STABLE. Например, 23 ноября 2004 г. переводы из HEAD можно использовать с 1.5.1cvs и с 1.4.4cvs.

Когда SquirrelMail замораживает строки в каком-то выпуске, разработчики i18n разветвляют локали HEAD на ветку SM-x_x_x и заменяют шаблон строки тем, который содержит строки, включенные только в выбранную версию SquirrelMail. Строки должны быть заморожены за две недели до запланированной даты выпуска SquirrelMail.

Переводы SquirrelMail распространяются отдельными пакетами от основного пакета SquirrelMail. Пакеты перевода должны быть созданы в течение одной недели после любого выпуска SquirrelMail. Если обновления перевода получены после выпуска SquirrelMail, разработчики могут создать другие пакеты локалей, включающие обновленные переводы.

Активно поддерживаются только ветки HEAD, последняя версия STABLE и последняя версия DEVEL.

Отправка переводов

Новые и обновленные переводы SquirrelMail можно отправлять в список рассылки squirrelmail-i18n.

Новые переводы должны быть под лицензией GNU GPL или другой открытой лицензией, либо авторские права должны быть переданы разработчикам SquirrelMail.

Любой переведенный файл GNU Gettext Portable Object (PO) должен пройти тест msgfmt -v -c -o /dev/null squirrelmail.po без каких-либо предупреждений или сообщений об ошибках.

Перевод поддерживается только в том случае, если количество переведенных строк превышает 50 % всех строк в squirrelmail.po. Перевод может быть объявлен неподдерживаемым, если он включает переводы на другие языки. Перевод можно считать поддерживаемым, если язык похож на американский английский и требуются лишь некоторые изменения правописания.

Поддерживаемые переводы могут быть обновлены ответственным за перевод или членом группы переводчиков. Другие люди должны получить одобрение от ответственного за перевод или члена группы переводчиков. Если ответственный за перевод не отвечает на электронные письма, разработчики SquirrelMail могут поручить обслуживание этого перевода другому лицу.

Неподдерживаемый перевод может обновить любой, кто готов взять на себя обслуживание этого перевода.

Если в новом переводе используется кодировка, не поддерживаемая существующими функциями декодирования/кодирования SquirrelMail, должно быть сопоставление кодировки с Unicode, распространяемым по открытой лицензии или в общественном достоянии.

Разработчики, координаторы, переводчики

Только разработчики SquirrelMail имеют доступ для записи в репозиторий SquirrelMail. Они фиксируют все переводы, созданные другими людьми, в репозиторий.

Координаторы поддерживают переводы на некоторые языки. Если человек согласен быть координатором, это должно быть указано в файле TRANSLATORS, и для всех переводов SquirrelMail на этот язык требуется его одобрение.

Переводчики сохраняют только те файлы, которые они перевели.

Разработчики и координаторы I18n должны быть подписаны на список рассылки i18n. Переводчики не обязаны подписываться на список. Когда разработчик передает перевод в репозиторий, он/она также должен сообщить об этом переводчику и в список рассылки i18n.

Начиная со SquirrelMail 1.4.4 и 1.5.0, переводы отделены от основного пакета SquirrelMail. Это означает, что требуется дополнительный шаг установки, если вы хотите использовать языки, отличные от американского английского. Имея отдельные пакеты перевода, мы можем:

<УЛ>
  • обновлять переводы чаще, чем SquirrelMail выпускает,
  • включить переводы других плагинов,
  • создавать комбинированную статистику SquirrelMail и плагинов без сценариев "загрузить все плагины, найти переведенные, изменить их порядок" и
  • уменьшить размер основного пакета SquirrelMail с 13 МБ до 4 МБ (или 550 КБ в упакованном виде).
  • Репозиторий содержит ветку для каждой версии SquirrelMail и ветку HEAD. Поддерживаются только текущие ветки STABLE, DEVEL и HEAD. Каждый раз, когда выпускается новая версия SquirrelMail, будет создаваться отдельная ветка локалей и будут выпускаться пакеты перевода для этой версии SquirrelMail. Переводчикам настоятельно рекомендуется использовать для своих переводов ветку HEAD локалей SquirrelMail.

    SquirrelMail использует переводы на основе gettext. Строки в коде используют специальное форматирование. Программа xgettext позволяет извлекать строки из кода. Программа msgmerge объединяет извлеченные строки с уже переведенными. Программы msgfmt компилируют строки gettext в двоичный формат. Переводы SquirrelMail хранятся в файлах locale/*/LC_MESSAGES/squirrelmail.po. Двоичные переводы хранятся в файлах locale/*/LC_MESSAGES/squirrelmail.mo.

    SquirrelMail не зависит от поддержки gettext в php. Если поддержка gettext присутствует, SquirrelMail использует ее. Если нет поддержки php gettext, SquirrelMail использует собственные функции gettext. PHP gettext работает с файлами .mo, gettext SquirrelMail использует файлы .po.

    Дополнительную информацию о gettext см. в руководстве по gettext.

    Чтобы перевести фактические строки, заполните msgstr после каждого msgid соответствующим переводом. Есть несколько инструментов, которые могут немного облегчить эту работу.

    Получить текст

    КБабель

    KBabel — это набор инструментов для редактирования и управления PO-файлами, созданными с помощью gettext. Его основным компонентом является мощный и удобный редактор файлов PO, который обладает всеми возможностями навигации, полной функциональностью редактирования, возможностью поиска переводов в разных словарях, проверкой орфографии и синтаксиса, отображением различий и многим другим. Он также включает «Диспетчер каталогов», который представляет собой представление файлового менеджера, предоставляющее обзор файлов PO. И последнее, но не менее важное: он включает в себя отдельное приложение-словарь, которое предоставляет дополнительные возможности доступа к мощным словарям KBabel.

    Переводчик

    gtranslator предлагает удобный, цветной и простой способ редактирования po-файлов gettext и всех других разновидностей po-файлов (po.gz, mo/gmo) с множеством удобных функций, таких как поиск, замена, автоматическое выполнение, возможность запроса и индивидуальное обучение. буфер (ТМ). Графический интерфейс также предлагает вам очень красивое дерево сообщений для просмотра переводов, сгруппированных по статусу (непереведенный, нечеткий) и с настраиваемыми цветами для строк.

    Редактировать

    poEdit — кроссплатформенный (Win32/Linux/Unix) редактор каталогов gettext (файлов .po). Он построен с помощью инструментария wxWindows. Он призван предоставить удобный способ редактирования каталогов gettext с такими функциями, как выделение нечетких и непереведенных записей, выделение пробелов, браузер ссылок и редактирование заголовков, а также может использоваться для создания новых каталогов или обновления существующих каталогов из исходного кода с помощью одного нажмите.

    Режим Emacs po

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

    Надеемся, что поскольку SquirrelMail используется более широко, неанглийские переводы будут использоваться для других неанглоязычных переводов. Возможно, вы захотите иметь это в виду, когда будете писать свой. Помните, что они будут использоваться во всем мире и в самых разных средах, поэтому диалекты местного языка могут кого-то смутить.

    Все переведенные файлы должны быть помещены в каталог справки. В каталоге справки создайте еще один каталог. Этот каталог ДОЛЖЕН называться двухбуквенной стандартной аббревиатурой языка. Например, английский будет "en", а польский будет "pl".

    Файлы справки написаны в базовом формате xml. Не волнуйтесь, XML совсем не сложен. Все, что он делает, это содержит значения внутри тегов, таких как и . Для этих файлов справки теги должны быть в отдельной строке, например:

    Существует два типа основных тегов: и . В файле .hlp может быть только один тег. Однако тегов может быть много. Внутри обоих этих тегов может быть любая комбинация любого из следующих тегов: , , . Вот пример:

    Заголовок может состоять только из одной строки. Резюме может состоять из нескольких строк, но оно должно быть очень коротким. Описание может быть очень длинным. Это основная часть раздела справки.

    Перевод:

    Для перевода просто скопируйте все файлы .hlp из help/en в новый каталог, который вы создали для этого языка (например, help/pl). Вам нужно только перевести то, что находится между тегами. Не переводите настоящие теги, такие как или . Имена тегов должны оставаться на английском языке. Вы должны переводить только текст между тегами.

    Статистика переводов, а также файлы справки можно найти на странице статистики SquirrelMail i18n.

    Читайте также: