Správičky 2 804 Blogy 945 Fórum 18 609

Lokalizácia cez shared projekt vo WPF a UWP

photo
malybirko
29. 1. 2018 9:47:49
Body: 415
Najaktívnejší č.: 46

Lokalizácia cez shared projekt vo WPF a UWP

Zdravím

Potrebujem poradiť s lokalizáciou pre projekt ktory bude mat zdielaný kod pre WPF applikaciu a UWP.

Kod zdielam cez shared projekt.

Vytvoril som s v nom podla dokumentacie sem 
https://docs.microsoft.com/en-us/windows/uwp/app-resources/localize-strings-ui-manifest

Resw subor akde mam texty.

len teraz v aplikacii, v ktorej shared projekt referenciuem sa neviem spravne odvolavat na tieto stringy. vie niekto poradit?

 

Vdaka

[Reakcia]

photo
Liero
29. 1. 2018 12:42:50
Body: 9490
Najaktívnejší č.: 6

RE: Lokalizácia cez shared projekt vo WPF a UWP

Co konkretne mas na mysli pod shared project?

Mal by si pouzivat .NET Standard Library.

.NET Framework 4.7 implementuje .NET Standard 2.0, rovnako aj UWP ale len on verzie Falls Creators Update. Ak potrebujes aj podporovat aj starsie Windows 10, napriklad Anniversary Update, tak musis siahnut po .NET Standard 1.6, vid https://docs.microsoft.com/en-us/dotnet/standard/net-standard.

V principe, cim nizsia verziu .NET Standard tvoja kniznica targetuje, tym lepsie (bude univerzalnejsia), ale tym menej API budes mat k dispozicii.

No a co sa tyka tych resourcov, tak:

Momentalne nemam UWP Dev Tools nainstalovane, ale niesom si isty, ci postup, popisany tu bude fungovat aj pre .NET Standard kniznicu. V dokumentacii sa spomina iba UWP Class Library.
Razdopadne .resw subor je urceny iba pre UWP aplikaciu a zrejme tie resources nebudes vediet citat v WPF aplikacii.
Vyskusal by som pouzit stare dobre .resx, namiesto .resw. Ak nevies ako na to, vyskusaj vytvorit resources vo WPF aplikacii a nejako ich pouzit. Ked to budes mat, len ich presun do .NET Sdandard kniznice a rovnako by si ich mal vediet pouzit aj v UWP aplikacii.

Ked to nepojde, stale je tu T4 template, ako zachrana. Pomocou neho vies napriklad generovat resw subor z resx suboru pocas buildu. Ja som svojho casu generoval ViewModel z .resx suborov, tak ze pre kazdy kluc som vytvoril propety. To som potom vedel pouzit v XAML databindingu

[Reakcia]

photo
malybirko
29. 1. 2018 12:47:54
Body: 415
Najaktívnejší č.: 46

RE: Lokalizácia cez shared projekt vo WPF a UWP

Praveze nepozuivam .Nest standard pretoze potrebujem aby WPF bezalo na .net frameworku 4.0 je to legaci kus kodu a tie pc moc na upgrade na  vysie verzie OS nie su stavane

 

A shared projekt myslim priamo vvo VS ked vytvaras projekt tak mozes vytvorit ako shared, ktory vlastne nevytvara  dll ale  skor sa prilely ked ho referencujes v inom projekte.

Vyrvorit Resx sa preto v nom neda.

[Reakcia]

photo
Liero
29. 1. 2018 13:17:45
Body: 9490
Najaktívnejší č.: 6

RE: Lokalizácia cez shared projekt vo WPF a UWP

Skus vytvorit nejaky txt subor, premenovat ho na resx, nastavit build action na embedded resource a nastvit custom tool na PublicResXFileCodeGenerator.

Ked to nepojde, tak ti ostava ten T4 template

[Reakcia]

photo
harrison314
30. 1. 2018 17:11:23
Body: 1115
Najaktívnejší č.: 24

RE: Lokalizácia cez shared projekt vo WPF a UWP

Robil som na projektoch, kde sa resx subory generovali z XML-ka, spolu s nimi sa generovali aj prislusne triedy na pristup k nim, takze netrebalo nic rucne nastavovat. dalsia vyhoda bola automaticke generovanie formatovacich metod (ak sa v stringu pouzivali string format parametre).

Tiez cez T4, co je podla mna pre tvoj pripad idelane riesnie, navyse mozes mat XML-ko s preklami niekde v nadradenom foldri.

[Reakcia]

photo
malybirko
31. 1. 2018 10:41:05
Body: 415
Najaktívnejší č.: 46

RE: Lokalizácia cez shared projekt vo WPF a UWP

Dakujem za rady.

 

Nakoniec som to vyriesil ze som si vytvoril Legacy Portable library do ktorej som si ulozil resx subory z kotrymi som uz lokalizaciu robil.

 

Ocividne som sa snazil znasilnit VS na nieco nestandardne a starsie WPF asi nevie pracovat s resw subormi

[Reakcia]



Najaktívnejší užívatelia
1. 37755 b. photo vlko
2. 21340 b. photo T
3. 15955 b. photo spigi
4. 15450 b. photo Anonymous
5. 11120 b. photo dudok
6. 9490 b. photo Liero
7. 6885 b. photo siro
8. 6245 b. photo slavof
9. 5355 b. photo duracellko
10. 4445 b. photo xxxmatko