Domanda

Qualcuno ha qualche consiglio sulla denominazione delle chiavi nei file di risorse? Ad esempio, basi il nome della tua chiave sul testo che deve essere localizzato o sul controllo che utilizza il testo?

Supponi di avere un pulsante di modifica in più schermate (una per modificare un utente, una per modificare un gruppo). È possibile utilizzare le seguenti chiavi:

  • editUserButton.label = Modifica utente ...
  • editGroupButton.label = Modifica gruppo ...

o

  • editUser = Modifica utente ...
  • editGroup = Modifica gruppo ...

o

  • user.edit = Modifica utente ...
  • group.edit = Modifica gruppo ...

Quale schema preferisci e perché?

È stato utile?

Soluzione

Prefisso i miei letterali per nome utente o nome classe azione. ad esempio:

PlaceOrder.invalidId=Invalid id for order {0}
PlaceOrder.success=Your order {0} was successful
PlaceOrder.fail.visa=Your visa was ...
PlaceOrder.fail.communications=We could not...
PlaceOrder.submit=Buy now

Login=Login
Login.fail=Your credentials did not...
Login.alread=You are already logged in

In questo modo si evitano le collisioni:

EditStudent=Edit
EditClass=Edit
EditCourse=Edit Course

... e puoi anche trovare ciò di cui hai bisogno più facilmente.

Un altro modo in cui raggruppo è per entità:

Person.id=#
Person.name=First name
Person.surname=Surname

Questi possono apparire come intestazioni su tabelle con le entità. Ti salva in casi come questo:

Person.id=#
Class.id=#
Course.id=Course Id

Infine, fornendo il contesto nelle chiavi di proprietà, puoi salvarti da false traduzioni. Ad esempio una volta ho avuto:

no=no

che veniva utilizzato come intestazione di una tabella id (#) nella cella in alto a sinistra, ma il nostro traduttore francese lo ha fatto per il francese:

no=non

... pensava che fosse la parola " no " (negativo di sì). :)

L'ultimo (ma non meno importante) prefisso con classname ti aiuterà quando vuoi riformattare / rinominare le classi e aggiornare rapidamente queste chiavi di proprietà senza dover guardare i template.

Altri suggerimenti

Lo basiamo sulla versione inglese del termine. Es: EditUser È stato facilmente leggibile dai nostri sviluppatori e può essere riutilizzato in più posizioni quel termine è richiesto in tutta l'app.

Basalo sul testo inglese, ma aggiungi il prefisso con la finestra / dialoghi / cosa hai in cui appare la parola o la frase. Almeno quando lo spazio del layout è limitato, potresti voler evitare di cadere nella trappola di avere esattamente la stessa stringa ovunque: questo ti impedisce di abbreviare per ottenere layout decenti, specialmente in lingue polisillabiche come il finlandese.

Ovviamente, dovresti comunque cercare di essere coerente nel nominare le cose. Aumentare il numero di stringhe aumenterà anche i costi di traduzione se lo stai facendo commercialmente.

E non ignorare il pericolo degli omonimi. Fornire un contesto aiuta a prevenirlo. Non abbiate paura di rendere il nome della risorsa più lungo dell'attuale termine inglese, questo può aiutare sostanzialmente i traduttori.

+1 per la risposta di @ cherouvim, ma si riduce sempre alla documentazione.

Documenta ogni valore (usando qualunque meccanismo di commento è supportato dal formato del file di origine della risorsa), incluso il tipo di dati di ciascun parametro se la stringa è formattabile. Ad esempio, l'editor VS per il formato .resx espone un campo di commento che lo rende molto semplice.

Quindi un messaggio come:

  

Impossibile pianificare il lavoro {0} prima di {1}.

verrebbe documentato come qualcosa del genere:

  

Messaggio di errore registrato, {0}: nome lavoro, {1} data / ora nel formato ISO 8601.

Penso che in primo luogo dovresti usare un qualche tipo di file XML per archiviare quel tipo di dati.

Qualcosa del tipo:

<? xml version = " 1.0 " & Encoding = quot; utf-8 quot &; & Standalone = quot; sì quot &; ? Gt &;
& Lt; gt XML &;
nbsp &; nbsp &; nbsp &; nbsp &; < gt pulsante &;
nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; lt &; & modifica gt ;
nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; & nbsp; & nbsp; < user > *** Modifica utente *
< / user >
nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &;   <group> Modifica gruppo < / group > < br> nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; nbsp &; lt &; & / modificare gt;
nbsp &; nbsp &; nbsp &; nbsp &; lt &; / pulsante gt &;
lt &; / XML gt &; **

E poi usa un " translate " Classe per ottenere (e impostare / salvare) il testo.

Qualcosa del tipo:

myTranslateClass.load ('translate.xml');
myTranslateClass.get ('button', 'edit', 'user');

Questo è un semplice esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top