Tema: Re: .net lokalizacija [solved]
Autorius: a
Data: 2011-01-03 18:41:41
taip, labai panasu vaizdeli ir mes kure esam

gal DisplayNameAttribute ir DescriptionAttribute naudojami kaip 
paprasciausias budas pvz. property name padaryti is daugiau ne vieno zodzio 
(na, jei kode "ManoMiestas", o PropertyGrid'e kad butu parasyta "Mano 
miestas"; gal be reikalo as cia keliau triuksma; nepamenu

o del to, kad "nepatiko negalejimas sukurt universalios vienos klases kuri 
tiktu bet kokiam assembly" - tai ar neiseina metoduose get (o gal ir set) 
pabandyti paieskoti kaip su kokiu RTTI informacijos: kokiame modulyje yra 
klase, ir krauti reikiamos lokalizacijos *.resx bylos string'o turini?

Manager'iai .NET itariu turtingesni galimybemis nei koks RTTI.

"Jornada Del Muerto" <Jornada@Lythum.lt> wrote in message 
news:ifq47e$acg$1@trimpas.omnitel.net...
>> a siaip, jei teisingai pamenu, tai gal ne tik viena ale ir dvi funkcijos
>> buvo skirtos kalbai keisti;
>> nepamenu tiksliai
>
> Sveiks,
>
>    Na taip kas liecia:
>
>    1. ComponentModel ir PropertyGrid tai visumoje reikejo susikurti savo 
> DisplayNameAttribute ir DescriptionAttribute veldint nuo esamu 
> System.ComponentModel, tai man ne idealus sprendimas, nes rasant headerius 
> negalima nurodyt nieko isskyrus konstantas, kas padaro sias klases ne 
> universaliom, nes viduje ju tenka dirbti su 
> Properties.Resources.ResourceManager kur tas resursas yra konkretus to 
> assembly resursas, jei tas klases apsirasau kazkokiam lib'e tai jos dirbs 
> tik su to assembly resursu failu.
>
>    Jeigu turiu Resources.resx (tipo neutral, pvz.english) irasa pvz:
>
>    SomeDialogName - "Hello!", o Resources.lt.resx tai butu "Sveiki!";
>
>    tai aprasant toki property rasosi:
>
>    [MyCustomDisplayName("SomeDialogName")]
>    public string Hello
>    {
>        get .. set...
>    }
>
>    2. Ko as butent ir klausiau pirmame paciame post'e - kaip perjungt 
> kazkokia kalba - darosi labai paprastai:
>
>   // LT Localization
>   System.Threading.Thread.CurrentThread.CurrentUICulture =
>        new System.Globalization.CultureInfo ("lt");
>
>    Ir viskas persijungs pagal lt koda, ta prasme jei assembly tures 
> Resources.lt.resx tai dirbs su jais, jei ten neras tokio string tai manau 
> ims is Resources.resx ir viskas.
>
>
> PS. Dabar kaip ir viskas veikia, gal kiek nepatiko negalejimas sukurt 
> universalios vienos klases kuri tiktu bet kokiam assembly, bet jeigu 
> padarius atskira lokalizacijos dll tai gal irgi visai nieko sprendimas 
> butu, ta prasme tik jame laikant visus stringus kiek tik naudojasi kur 
> nors ir po to visur naudoti is jo juos ir tik ten tureti 
> DisplayNameAttribute ir DescriptionAttribute, tai viens bent is galimu 
> sprendimu.
>
> JDM.
>
>
>
>