Локализация дизайнера

Обсуждение Stimulsoft Reports.NET
Ответить
kavit
Сообщения: 47
Зарегистрирован: 23 янв 2014, 11:14

Локализация дизайнера

Сообщение kavit »

Добрый день.

Используется: Stimulsoft 2012.3.1500 (3 декабря 2012)
Задача: реализовать выбор языка дизайнера отчетов (Stimulsoft.Report.Design) в зависимости от текущего языка приложения.
Сделано:
Устанавливается локализация через метод:

Код: Выделить всё

StiConfig.LoadLocalization(filepath)
где filepath - путь к xml-файлу нужного перевода. Все переводы расположены в папке Localization.

Проблема:
Культура приложения в .NET = класс CultureInfo. По текущей культуре нужно выбрать нужный файл, но имена файлов не соответствуют именам культур. Например:
Украинский = uk-UA = ua.xml (совпадение во 2-й части)
Русский = ru-RU = ru.xml (совпадение по 1-й и 2-й части)
Хорватский = hr-HR = cro.xml (нет совпадений)

Вопрос: По какой логике формируются имена файлов переводов. Есть зависимость от имен культур .NET (CultureInfo) или общая закономерность

Прикрепляю картинку сравнения имен файлов vs CultureInfo

P.S. В файле "pt-BR.xml" возможно опечатка в слове "Portugese (Brazil)", не хватает буквы "U" -> "PortugUese (Brazil)"
Вложения
xml.png
xml.png (55.57 КБ) 1898 просмотров
Stimulsoft 2014.1.1900.0 Winforms / Windows 7 / Visual Studio 2012 UP4
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Локализация дизайнера

Сообщение HighAley »

Здравствуйте.

Спасибо за исправления. Мы сделали все исправления. В некоторых локализациях мы используем полное название культуры. Если польное название не найдено, то ищите по первым двум буквам.
Прилагаем все текущие локализации. Пишите, если возникнут ещё замечания или вопросы.

Спасибо.
Вложения
Stimulsoft.Reports.Localization.zip
(1.53 МБ) 4139 скачиваний
kavit
Сообщения: 47
Зарегистрирован: 23 янв 2014, 11:14

Re: Локализация дизайнера

Сообщение kavit »

Спасибо. Работает.

Вопрос: Возможно есть примерно такой метод: StiConfig.SetLocalization(CultureInfo culture), в который бы передавалась требуемая культура Тогда не нужно писать код определения имени файла.

Код: Выделить всё

/// <summary>
/// Формирование имени файла локализации Stimulsoft для указанной культуры
/// </summary>
private static string GetFilenameForCulture(CultureInfo culture)
{
    // Логика формирования имени файла (подробности http://forumru.stimulsoft.com/viewtopic.php?f=8&t=3654)
    // ==================================================================
    // 1. Сначала ищется по полному имени культуры. Например: 'en-US.xml'
    // 2. Если файла нет, ищется по первым 2-м буквам культуры: 'en.xml'
    // 3. Если нет, то подставляется по умолчанию 'ru.xml'

    string dir = Path.Combine(Application.StartupPath, "Localization");

    string filename = Path.Combine(dir, culture.Name + ".xml");

    if (!File.Exists(filename))
    {
        filename = Path.Combine(dir, culture.TwoLetterISOLanguageName + ".xml");

        if (!File.Exists(filename))
        {
            filename = Path.Combine(dir, "ru.xml");
        }
    }

    return filename;
}
Stimulsoft 2014.1.1900.0 Winforms / Windows 7 / Visual Studio 2012 UP4
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Локализация дизайнера

Сообщение HighAley »

Здравствуйте.

К сожалению, такого метода нет и не может быть. Используйте один из следующих:

Код: Выделить всё

StiConfig.LoadLocalization(string file)
StiConfig.LoadLocalization(System.IO.Stream stream)
Спасибо.
Ответить