Domanda

Come mantenete aggiornate le stringhe delle lingue parlate nel vostro programma? C'è un modo economico? Dove puoi trovare persone che effettuano le conversioni nel tempo?

È stato utile?

Soluzione

Ci sono aziende che tradurranno file di risorse nei formati standard a pagamento; Penso che sia così che la maggior parte delle grandi aziende lo fanno.

Di recente ho posto una domanda simile qui sull'argomento il modo migliore per strutturare il codice in un progetto per supportarlo, con il mio ulteriore desiderio di preservare le stringhe leggibili nel codice. Questo non è standard, tuttavia ... di solito inseriresti tutte le risorse della stringa in un file separato e ti riferiresti ad esse tramite ID nel codice, e il file verrebbe tradotto.

Vedi i file .rc per Windows C ++, i file .resx per .NET, non sono sicuro di ciò che esiste per Linux / Mac / altro, ma sono sicuro che ci sono equivalenti.

Altri suggerimenti

Questo è stato estratto in Joel's Best Software Writing I: http : //blogs.msdn.com/ericlippert/archive/2003/10/28/53298.aspx (Quanti dipendenti Microsoft ci vogliono per cambiare una lampadina?), e ad alto livello si discute di quanto sia semplice i cambiamenti hanno grandi ramificazioni. Se ritieni che MS abbia molte applicazioni internazionalizzate e questo è il processo che usano per garantire che le sue app siano aggiornate con mille fattori, tra cui stringhe nuove / modificate da non perdere in altre lingue.

Per esigenze di traduzione (un'area in cui ho un po 'di conoscenza!), consiglierei OmniLingua Worldwide.

Penso che dipenda da quanto si desidera che le lingue siano accessibili, che probabilmente dipende molto da ciò che il progetto è in primo luogo (professionale, hobby, ecc.)

Nel mio lavoro per hobby ho le stringhe specifiche della locale memorizzate in un semplice file JSON esterno (XML o anche un semplice INI funzionerebbe altrettanto bene, tutto ciò che può darti coppie chiave-valore). Ciò ha i vantaggi di essere multipiattaforma, facile da modificare e (se lo si desidera) consente a chiunque abbia le conoscenze e la determinazione di tradurre la tua app nella lingua che preferisce. Per progetti open source e simili, ciò può essere prezioso.

Per i progetti che potresti non voler tradurre volenti o nolenti, allora le risorse integrate sono probabilmente una scommessa più sicura, in quanto sono ragionevolmente facili da scambiare per gli sviluppatori, ma danno almeno un banale blocco ai potenziali traduttori. Anche in questo caso, tuttavia, il metodo di archiviazione non deve essere complesso. Qualsiasi tipo di file specificato o una tabella di stringhe nativa andrà bene.

Nei progetti a cui ho lavorato, abbiamo adottato due diversi approcci alla localizzazione, a seconda delle dimensioni del progetto. Per progetti più piccoli in cui ogni sviluppatore "possiede" un componente, è responsabilità dello sviluppatore mantenere l'elenco di ciò che deve essere tradotto e in quali lingue.

Per progetti più grandi, abbiamo taggato ogni stringa con un prefisso di lingua. Ad esempio, la stringa tedesca per " Sì " è contrassegnato come " [de] Sì " ;. Dopo la localizzazione, la stringa viene sostituita da " Ja " ;. Ciò semplifica la ricerca di cose che sono state perse poiché è possibile eseguire ricerche tramite il prefisso.

Per quanto riguarda ulteriori fonti commerciali, ho lavorato in vari punti con Net-Translators e BMT , quest'ultimo più recentemente.

Consiglio vivamente di controllare il vento dell'ovest provider di risorse db .

Gestisco un'applicazione Web di gestione di progetti open source ( http://sharpforge.org/p/SharpForge .aspx ) e inizialmente utilizzato i file resx. Ecco i problemi che ho riscontrato

  • Volevo accedere a quelle risorse fortemente tipizzate dal livello BLL. Semplicemente non è stato possibile.
  • Anche i file resx sono molto difficili da mantenere, l'aggiunta / rimozione / modifica delle chiavi delle risorse può creare tutti i tipi di problemi.
  • Finalmente stavo riscontrando enormi problemi nel non salvare i file usando gli editor con la corretta mappa / codifica dei caratteri che avrebbe rimosso tutto il testo tradotto. Il processo di trasferimento delle risorse dal traduttore al repository di codice ha spesso comportato la fusione del testo.

Sono stato in grado di implementare il provider db come parte dell'applicazione. Viene fornito con un editor a cui puoi dare accesso ai traduttori. La loro traduzione va direttamente nell'app senza doppia gestione ed è disponibile non appena l'applicazione viene riavviata. Ha anche la capacità di creare oggetti fortemente tipizzati per accedere al provider da qualsiasi livello.

Una volta installato, ho semplicemente creato un progetto di traduzione su getafreelancer e sono stato in grado per ottenere 25 traduzioni per la mia domanda entro circa 2 settimane. Tutto per circa $ US50-100 ciascuno.

Entra in contatto nei sharpforge forum se ne hai domande su come implementarlo.

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