Ordine dei parametri nel codice di localizzazione

0

Nel codice di localizzazione (come T('English phrase with %s and %s parameters', param1, param2) l'ordine dei parametri in diverse lingue è diverso. Come gestirlo?

Il nostro motore di localizzazione sembra non supportare i parametri con nome o numerati, quindi i parametri devono andare nello stesso ordine in cui sono nel codice.

    
posta porton 05.04.2014 - 16:54
fonte

2 risposte

2

Se il tuo motore di localizzazione non supporta i parametri con nome, allora ci sono alcune opzioni.

  1. Ottieni un nuovo motore che supporti i parametri denominati
  2. Non lasciare che il tuo motore compili i parametri e inserisci la stringa tradotta in un secondo motore "printf", che fa supporta i parametri con nome, per inserire i parametri.
  3. Accetta che otterrai un output tradotto male e assicurati che i tuoi traduttori sappiano che i parametri non possono essere scambiati durante la traduzione. 1

1. Ho effettivamente lavorato a un prodotto in cui è stata effettuata questa scelta, a causa di limitazioni tecniche nel motore printf / display.

    
risposta data 05.04.2014 - 17:18
fonte
2

Scegli un motore di localizzazione diverso o esegui il rollover se non ce ne sono per la lingua che usi.

L'inversione dei parametri è abbastanza frequente nell'internazionalizzazione. Ecco perché molte funzioni di format -type consentono di specificare l'indice del parametro nel modello.

Ad esempio, in Python, le due righe seguenti stampano la stessa cosa:

print('Hello, %s!' % ('John'))
print('Hello, {0}!'.format('John')) # Can specify the order

In C #, il modello più utilizzato indica in quale ordine vengono presi i parametri:

string.Format("Hello, {0}!", "John");
    
risposta data 05.04.2014 - 17:16
fonte

Leggi altre domande sui tag