Локализация проекта без исходников
От: Genius_P Россия  
Дата: 02.12.04 15:47
Оценка:
Имеется проект с поддержкой локализации на базе сборок-сателитов. Исходников к данному проекту нет.
Хотелось бы руссифицировать web-интерфейс.
В каталоге bin лежит файл adminstrings.dll в подкаталоге ja adminstrings.resources.dll
При просмотре файлов ildasm видим

___[MOD] ...\bin\ja\adminstrings.resources.dll
   |      M A N I F E S T
   |___[NSP] AdminStrings
   |   |___[CLS] UIStringManager
   |   |   |     .class public auto ansi 
   |   |   |___[STF] StringResource : public static class [mscorlib]System.Resources.ResourceManager
   |   |   |___[STF] preferredDBCulture : private static string
   |   |   |___[STF] utcOffset : private static int32
   |   |   |___[STM] .cctor : void()
   |   |   |___[MET] .ctor : void()
   |   |   |___[STM] AddDateTimeOffset : valuetype [mscorlib]System.DateTime(valuetype [mscorlib]System.DateTime,valuetype [mscorlib]System.TimeSpan)
   |   |   |___[STM] ClientDateTimeToUtc : valuetype [mscorlib]System.DateTime(valuetype [mscorlib]System.DateTime)
   |   |   |___[STM] GetCultureInfo : void(string,class [mscorlib]System.Globalization.CultureInfo&)
   |   |   |___[STM] GetDefaultTimezoneOffset : string()
   |   |   |___[STM] GetPreferredSpecificCultureFromNeutralCulture : void(class [mscorlib]System.Globalization.CultureInfo&)
   |   |   |___[STM] GetString : string(string)
   |   |   |___[STM] GetUserCulture : class [mscorlib]System.Globalization.CultureInfo(string[])
   |   |   |___[STM] ServerDateTimeToClientDateTime : valuetype [mscorlib]System.DateTime(valuetype [mscorlib]System.DateTime)
   |   |   |___[STM] SetUserCulture : class [mscorlib]System.Globalization.CultureInfo(string[],string)
   |   |   |___[STM] SetUtcOffset : void(string)
   |   |   |___[STM] UserCultureSupported : bool(class [mscorlib]System.Globalization.CultureInfo)
   |   |   |___[STM] UtcToClientDateTime : valuetype [mscorlib]System.DateTime(valuetype [mscorlib]System.DateTime)
   |   |   |___[STM] get_PreferredDBCulture : string()
   |   |   |___[STM] get_UtcOffset : int32()
   |   |   |___[STM] set_PreferredDBCulture : void(string)
   |   |   |___[STM] set_UtcOffset : void(int32)
   |   |   |___[PTY] PreferredDBCulture : string()
   |   |   |___[PTY] UtcOffset : int32()
   |   |
   |
   |___[CLS] <PrivateImplementationDetails>
   |   |     .class private auto ansi 
   |   |___[STF] $$method0x6000008-1 : static assembly class [mscorlib]System.Collections.Hashtable
   |


Пытаюсь сделать свой сателит:
1. с помощью Resource Editor 1.2 for VS открывают ресурсы из adminstrings.dll и произвожу их перевод
2. Через resgen.exe компилю исправленные ресурсы
3. Далее как написано в Creating Satellite Assemblies генерирую сателит

c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\al.exe /t:lib /embed:adminstrings.ru-RU.resources  /culture:ru-RU /out:adminstrings.resources.dll /template:adminstrings.dll


4. кладу полученый сателит в каталог ru-RU в папке bin

Результат приложение так и работает используя английские ресурсы, при просотре через ildasm сателита он показывате только манифест и все.

Вопросы: Я что-то делаю не правильно? Приложение не предлагает выбирать язык, на чем оно основывается когда его выбирает (на каких Именно настройка ОС)?
Re: Локализация проекта без исходников
От: daedin1  
Дата: 02.12.04 17:14
Оценка:
Здравствуйте, Genius_P, Вы писали:

G_P>Имеется проект с поддержкой локализации на базе сборок-сателитов. Исходников к данному проекту нет.

G_P>Хотелось бы руссифицировать web-интерфейс.
G_P>В каталоге bin лежит файл adminstrings.dll в подкаталоге ja adminstrings.resources.dll
G_P>При просмотре файлов ildasm видим

G_P>
G_P>___[MOD] ...\bin\ja\adminstrings.resources.dll
G_P>   |      M A N I F E S T
G_P>   |___[NSP] AdminStrings
G_P>   |   |___[CLS] UIStringManager
G_P>   |   |   |     .class public auto ansi 
G_P>   |   |   |___[STF] StringResource : public static class [mscorlib]System.Resources.ResourceManager
G_P>   |   |   |___[STF] preferredDBCulture : private static string
G_P>   |   |   |___[STF] utcOffset : private static int32
G_P>   |   |   |___[STM] .cctor : void()
G_P>   |   |   |___[MET] .ctor : void()
G_P>   |   |   |___[STM] AddDateTimeOffset : valuetype [mscorlib]System.DateTime(valuetype [mscorlib]System.DateTime,valuetype [mscorlib]System.TimeSpan)
G_P>   |   |   |___[STM] ClientDateTimeToUtc : valuetype [mscorlib]System.DateTime(valuetype [mscorlib]System.DateTime)
G_P>   |   |   |___[STM] GetCultureInfo : void(string,class [mscorlib]System.Globalization.CultureInfo&)
G_P>   |   |   |___[STM] GetDefaultTimezoneOffset : string()
G_P>   |   |   |___[STM] GetPreferredSpecificCultureFromNeutralCulture : void(class [mscorlib]System.Globalization.CultureInfo&)
G_P>   |   |   |___[STM] GetString : string(string)
G_P>   |   |   |___[STM] GetUserCulture : class [mscorlib]System.Globalization.CultureInfo(string[])
G_P>   |   |   |___[STM] ServerDateTimeToClientDateTime : valuetype [mscorlib]System.DateTime(valuetype [mscorlib]System.DateTime)
G_P>   |   |   |___[STM] SetUserCulture : class [mscorlib]System.Globalization.CultureInfo(string[],string)
G_P>   |   |   |___[STM] SetUtcOffset : void(string)
G_P>   |   |   |___[STM] UserCultureSupported : bool(class [mscorlib]System.Globalization.CultureInfo)
G_P>   |   |   |___[STM] UtcToClientDateTime : valuetype [mscorlib]System.DateTime(valuetype [mscorlib]System.DateTime)
G_P>   |   |   |___[STM] get_PreferredDBCulture : string()
G_P>   |   |   |___[STM] get_UtcOffset : int32()
G_P>   |   |   |___[STM] set_PreferredDBCulture : void(string)
G_P>   |   |   |___[STM] set_UtcOffset : void(int32)
G_P>   |   |   |___[PTY] PreferredDBCulture : string()
G_P>   |   |   |___[PTY] UtcOffset : int32()
G_P>   |   |
G_P>   |
G_P>   |___[CLS] <PrivateImplementationDetails>
G_P>   |   |     .class private auto ansi 
G_P>   |   |___[STF] $$method0x6000008-1 : static assembly class [mscorlib]System.Collections.Hashtable
G_P>   |

G_P>


G_P>Пытаюсь сделать свой сателит:

G_P>1. с помощью Resource Editor 1.2 for VS открывают ресурсы из adminstrings.dll и произвожу их перевод
G_P>2. Через resgen.exe компилю исправленные ресурсы
G_P>3. Далее как написано в Creating Satellite Assemblies генерирую сателит

G_P>
G_P>c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\al.exe /t:lib /embed:adminstrings.ru-RU.resources  /culture:ru-RU /out:adminstrings.resources.dll /template:adminstrings.dll
G_P>


G_P>4. кладу полученый сателит в каталог ru-RU в папке bin


G_P>Результат приложение так и работает используя английские ресурсы, при просотре через ildasm сателита он показывате только манифест и все.


G_P>Вопросы: Я что-то делаю не правильно? Приложение не предлагает выбирать язык, на чем оно основывается когда его выбирает (на каких Именно настройка ОС)?


Настройка локалзации приложения задается через параметр culture элемента globaliztion в web.config.
Re[2]: Локализация проекта без исходников
От: Воронков Василий Россия  
Дата: 03.12.04 08:03
Оценка: +1
Здравствуйте, daedin1, Вы писали:

D>Настройка локалзации приложения задается через параметр culture элемента globaliztion в web.config.


Только вот если не передается культура ресурс менеджеру то это не поможет
Re[3]: Локализация проекта без исходников
От: daedin1  
Дата: 03.12.04 16:08
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, daedin1, Вы писали:


D>>Настройка локалзации приложения задается через параметр culture элемента globaliztion в web.config.


ВВ>Только вот если не передается культура ресурс менеджеру то это не поможет


может быть поможет свойство UserLanguages обьекта Request. Что нибудь в этом духе:

string lang = Request.UserLanguages[0];
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);

По идее при установке CurrentCulture потока ASP.NET должен загружать ресурсы sattelite assembly с культурой соответствующей заданой.
Re: Локализация проекта без исходников
От: Аноним  
Дата: 03.12.04 08:16
Оценка:
Не помогло.
Вообще при попытке открыть сформированный сателит через Resurce Editor 1.2 получаю ошибку проверки сильного имени.
При сбросе этой сборки в GAC ругани никакой нет, у всех трех сборок (natural, ja, ru-RU) одинаковые PublicToken
Не могу понять что она не работает??

2 Воронков Василий
Но данное приложение уже имеет два языка, значит оно какимто образом между ними переключается!


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[3]: Локализация проекта без исходников
От: Аноним  
Дата: 06.12.04 08:07
Оценка:
Вообщем поборол я ошибку со strog name, все дело в том, что я не правильно назвал ресурсы.
Теперь следующая трабла. В сателите также находится вместе с ресурсами код зависящий от языка я так понимаю его тоже нужно запхать в сателит. Как это сделать?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[4]: Локализация проекта без исходников
От: daedin1  
Дата: 06.12.04 14:29
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вообщем поборол я ошибку со strog name, все дело в том, что я не правильно назвал ресурсы.

А>Теперь следующая трабла. В сателите также находится вместе с ресурсами код зависящий от языка я так понимаю его тоже нужно запхать в сателит. Как это сделать?

А>
данное сообщение получено с www.gotdotnet.ru

А>ссылка на оригинальное сообщение


иходников как я понимаю нет?
Re[4]: Локализация проекта без исходников
От: Аноним  
Дата: 06.12.04 15:04
Оценка:
Внимательнее надо быть!
Тема называется локализация проекта БЕЗ ИСХОДНИКОВ!
Ну скажим исходники я всетаки Добыл с помощью программы Reflector но как все это запхать
причем я сравнил код сателита для японского языка и natural он полностью одинаковый, накой его в сателит запхали?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.