2015-05-11 12 views
5

Xcode non riesce a generare il file di localizzazione xliff con errore localizzazione non è riuscito a leggere un file di stringhe. Si prega di controllare il registro di sistema per ulteriori dettagli. Qualcuno sa dove trovo questi registri? È Xcode 6.3.2 GM ma ho provato anche la versione 6.3.1. Con 6.3.1. l'errore è su un file specifico ma all'interno di quel file non è nulla di insolito. Inoltre ho provato a rimuovere quel file, ma sto ricevendo lo stesso errore anche se il file non è più lì. Qualcuno ha idea del perché?localizzazione Xcode 6 non è riuscito a leggere un file di stringhe

+0

Ho lo stesso problema anche dopo l'aggiornamento a 6.3.2 (6D2105). Questo funzionava molto bene ... – leonard

+0

FYI: Controlla questo https://openradar.appspot.com/21056545 – skywinder

risposta

5

Finalmente, ho risolto il problema rimuovendo tutte le macro NSLocalizedString dal codice perché xliff exporter cerca il codice e in base ai risultati cerca file di stringhe. La cosa strana è che analizza anche i commenti, quindi semplicemente commentare le macro NSLocalizedString indesiderate non sarà di aiuto.

+0

Che la scansione del testo commentato non sia poi così strana. Legge solo tutti i file per determinate corrispondenze regolari. La regex è completamente inconsapevole del "codice" o della logica dietro di esso. –

+0

Finalmente! grazie ... non mi aspettavo affatto ... grazie ... così tanto tempo che ci ho dedicato ... Vorrei poter votare 3000 volte – Yitzchak

6

Does anyone know where do I find these logs?

Aperto Console app. E cercare le "stringhe" system.log ad esempio.

Does anyone idea why?

C'è un diversi problemi, che causano questo errore:

  1. vuoto Localizable.strings file.

Soluzione: Basta aggiungere un commento

/** no localizable strings **/ 

a questo file ed il problema è andato.

  1. Il problema 2-nd in simbolo di fuga: \

Soluzione: Rimuoverlo e capire qualcosa con le caratteri speciali. E probabilmente il tuo processo di esportazione si completerà senza errori.


P.S.

+0

Il file vuoto era il colpevole per me. Aggiungendo quel commento e facendo di nuovo l'importazione, è stato riparato. – ckbhodge

1

Ho avuto lo stesso problema quando tenta di utilizzare NSLocalizedString con la propria NSBundle specificato. Ho risolto questo semplicemente ridefinendo la funzione NSLocalizedString così:

public func NSLocalizedString(key: String, tableName: String? = nil, bundle: NSBundle = NSBundle.mainBundle(), value: String = "", comment: String) -> String 
{ 
    return yourBundleHere.localizedStringForKey(key, value: value, table: tableName) 
} 

Sostituire yourBundleHere con NSBundle.mainBundle() o quello che volete.

4

Ho avuto un problema simile. Controllare nel registro di sistema la voce "Xcode: [MT] DVTAssertions". (Applciations-> Utilità-> Console.app)

Ad esempio:

5/13/16 3:08:24.675 PM Xcode[15546]: [MT] DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-10188.1/IDEFoundation/Localization/IDELocalizationWork.m:355 

Dettagli: Impossibile leggere il file stringhe "Controller/FindMyPhone/fr.lproj/TILMarkPhoneLostMessageViewController.stringhe", errore di fondo:

Commenti uscita parser:

{ 
    "OGQ-Dm-sLB.text" = "Au secours, je suis perdu**U00A0**! Veuillez appeler mon propri\U00e9taire."; 
    "reH-FM-KQF.text" = "Envoyez un message \U00e0 la personne qui trouve votre t\U00e9l\U00e9phoneU00A0; celui-ci s\U2019affiche sur l\U2019\U00e9cran de verrouillage, accompagn\U00e9 de votre num\U00e9ro de t\U00e9l\U00e9phone. "; 
} 

non corrisponde:

{ 
    "OGQ-Dm-sLB.text" = "Au secours, je suis perdu\U00a0! Veuillez appeler mon propri\U00e9taire."; 
    "reH-FM-KQF.text" = "Envoyez un message \U00e0 la personne qui trouve votre t\U00e9l\U00e9phone\U00a0; celui-ci s\U2019affiche sur l\U2019\U00e9cran de verrouillage, accompagn\U00e9 de votre num\U00e9ro de t\U00e9l\U00e9phone. "; 
} 

Oggetto: Metodo: -work Discussione: {numero = 1, name = principale }

Si prega di segnalare un errore al numero http://bugreport.apple.com con questo messaggio di avviso e qualsiasi informazione utile che è possibile fornire.

Come si può vedere nel mio caso il problema era correlato al carattere unicode "NO-BREAK SPACE" (U + 00A0). Quando esporti per la localizzazione, xcode si aspetta che il codice sia \\U00A0, ma nel mio file di stringa è \U00A0 (altrimenti l'app mostra i caratteri invece di uno spazio ...). Mi sembra un bug in xcode. Se si desidera una soluzione rapida e sporca, direi cercare in tutto il progetto per \U00A0 e sostituirlo per \\U00A0 solo per l'esportazione (e una volta ottenuto xliff, annullare nuovamente tali modifiche).

registro di sistema:

System log

+0

Questo in realtà non risponde alla domanda. Se hai una domanda diversa, puoi richiederla facendo clic su [Invia domanda] (http://stackoverflow.com/questions/ask). Puoi anche [aggiungere una taglia] (http://stackoverflow.com/help/privileges/set-bounties) per attirare maggiormente l'attenzione su questa domanda una volta che hai abbastanza [reputazione] (http://stackoverflow.com/help/ che cosa è-la reputazione). - [Dalla recensione] (/ recensione/post di bassa qualità/12347964) –

+1

@Wongzigii in realtà spiega come risolvere il problema ... quindi può essere considerato una soluzione (per me ha funzionato ...) – MatterGoal

+1

Escaping la barra ha funzionato per me (quindi due barre, non tre: \\ U00a0). (Inoltre, risponde alla domanda come richiesto, ma questo non era il problema del richiedente, ma i sintomi sono gli stessi, quindi è la domanda che cercheranno gli utenti che hanno il problema di escape del carattere unicode.) – LoriHC

Problemi correlati