2015-05-11 18 views
5

Xcode generiert keine xliff-Lokalisierungsdatei mit Fehler Lokalisierung konnte keine Zeichenkettendatei lesen. Bitte überprüfen Sie das Systemprotokoll für weitere Details. Weiß jemand, wo finde ich diese Protokolle? Es ist Xcode 6.3.2 GM, aber ich habe auch die Version 6.3.1 ausprobiert. Mit 6.3.1. Der Fehler ist in einer bestimmten Datei, aber innerhalb dieser Datei ist nichts Ungewöhnliches. Außerdem habe ich versucht, diese Datei zu entfernen, aber ich bekomme den gleichen Fehler, obwohl die Datei nicht mehr da ist. Hat jemand eine Idee warum?Xcode 6-Lokalisierung konnte keine Zeichenkettendatei lesen

+0

ich das gleiche Problem auch nach 6.3.2 (6D2105) aktualisieren. Das funktionierte ziemlich gut ... – leonard

+0

FYI: Überprüfen Sie diese https://openradar.appspot.com/21056545 – skywinder

Antwort

5

Nun endlich, ich habe das gelöst, indem Sie alle NSLocalizedString-Makros aus dem Code entfernen, weil der xliff-Exporteur Code für sie untersucht und basierend auf Ergebnissen sucht er nach Zeichenketten-Dateien. Die seltsame Sache ist, dass er Kommentare auch scannt, also einfach Kommentar unerwünschten NSLocalizedString-Makros wird nicht helfen.

+0

Dass scannt kommentierte Text ist nicht so komisch. Es liest nur alle Dateien für bestimmte Regex-Übereinstimmungen. Die Regex ist sich des "Codes" selbst oder der Logik dahinter nicht bewusst. –

+0

Endlich! danke ... überhaupt nicht erwartet ... danke ... so viel Zeit, die ich damit verbracht habe ... Ich wünschte, ich könnte 3000 mal abstimmen – Yitzchak

6

Does anyone know where do I find these logs?

Öffnen Sie Console App. Und suchen Sie in system.log "Strings" zum Beispiel.

Does anyone idea why?

Es gibt eine Reihe von Problemen, die diesen Fehler verursachen:

  1. Leere Localizable.strings Datei.

Lösung: einfach hinzufügen Kommentar

/** no localizable strings **/ 

auf diese Datei und Problem ist weg.

  1. Das 2-nd Problem in Fluchtsymbol: \

Lösung: es entfernen und etwas mit Ihrem speziellen Zeichen herauszufinden. Und wahrscheinlich wird Ihr Exportprozess ohne Fehler abgeschlossen.


P. S.

+0

Leere Datei war der Schuldige für mich. Das Hinzufügen dieses Kommentars und das erneute Ausführen des Imports haben es behoben. – ckbhodge

1

Ich hatte das gleiche Problem, wenn versucht NSLocalizedString mit eigenen NSBundle angegeben zu verwenden. Ich habe dies nur fixiert, indem der NSLocalizedString Funktion wie das neu zu definieren:

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) 
} 

ersetzen yourBundleHere mit NSBundle.mainBundle() oder was auch immer Sie wollen.

4

Ich hatte ein ähnliches Problem. Überprüfen Sie im Systemprotokoll den Eintrag "Xcode: [MT] DVTAssertions". (Applciations-> Hilfsmittel-> Console.app)

Zum Beispiel:

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 

Details: Fehlgeschlagen Strings lesen Datei „Controller/FindMyPhone/fr.lproj/TILMarkPhoneLostMessageViewController.strings“, zugrunde liegenden Fehler:

Kommentare Parser Ausgabe:

{ 
    "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. "; 
} 

passt nicht:

{ 
    "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. "; 
} 

Objekt: Methode: -Arbeit Thema: {Nummer = 1, name = Haupt }

Bitte senden Sie einen Fehler unter http://bugreport.apple.com mit dieser Warnmeldung und alle nützlichen Informationen, die Sie bereitstellen können

Wie Sie in meinem Fall sehen können, war das Problem mit dem Unicode-Zeichen 'NO-BREAK SPACE' (U + 00A0) verbunden. Beim Export für die Lokalisierung erwartet xcode, dass der Code \\U00A0 ist, aber in meiner String-Datei ist (ansonsten zeigt die App die Zeichen anstelle eines Leerzeichen ...). Klingt wie ein Fehler in xcode für mich. Wenn Sie eine schnelle und schmutzige Lösung wollen, würde ich sagen, suchen Sie im gesamten Projekt für und ersetzen Sie es für \\U00A0 nur für den Export (und sobald Sie die xliff diese Änderungen wieder rückgängig machen).

Systemprotokoll:

System log

+0

Das beantwortet die Frage nicht wirklich. Wenn Sie eine andere Frage haben, können Sie sie durch Klicken auf [Frage stellen] (http://stackoverflow.com/questions/ask) stellen. Sie können [Kopfgeld hinzufügen] (http://stackoverflow.com/help/privileges/set-bounties) hinzufügen, um mehr Aufmerksamkeit auf diese Frage zu lenken, sobald Sie genug [Reputation] haben (http://stackoverflow.com/help/). Whats-Reputation). - [Aus Bewertung] (/ review/low-quality-posts/12347964) –

+1

@Wongzigii eigentlich erklärt es, wie man das Problem beheben kann ... so kann es eine Lösung sein (BTW für mich hat es funktioniert ...) – MatterGoal

+1

Escape Der Schrägstrich funktionierte für mich (also zwei Schrägstriche, nicht drei: \\ U00a0). (Es beantwortet auch die Frage, wie es gestellt wurde; das war nicht das Problem des Fragestellers, aber die Symptome sind die gleichen, also ist es die Frage, nach denen Benutzer suchen, die das Problem mit dem Unicode-Zeichen-Escape haben.) – LoriHC