Я попытался разместить файл en.json
в следующих местах:
src/assets/i18n/en.json
src/app/assets/i18n/en.json
И затем я пытаюсь прочитать файл следующим образом:
import {knownFolders, File} from 'tns-core-modules/file-system';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { Observable } from 'rxjs';
export class TranslateFileLoader implements TranslateLoader {
constructor(public prefix: string = 'assets/i18n/', public suffix: string = '.json') {}
public getTranslation(lang: string): Observable<Object> {
const appFolder = knownFolders.currentApp(); // Havet tried with knownFolders.documents() also
console.log(`${this.prefix}${lang}${this.suffix}`);
const cfgFile = appFolder.getFile(`${this.prefix}${lang}${this.suffix}`);
console.log(File.exists(cfgFile.path));
console.log(cfgFile.path);
const fileData = cfgFile.readTextSync();
console.log(fileData);
return JSON.parse(fileData);
}
}
console.log # 1: assets / i18n / en.json
console.log # 2: true
console.log # 3: /data/data/org.nativescript.playground/files/app/assets/i18n/en.json
console.log # 4:
Так что да, путь кажется хорошим, File.exists(cfgFile.path)
возвращает true
, но fileData
пуст, и поэтому я получаюисключение, когда я JSON.parse(fileData)
.Но почему?Сначала я подумал, что файлов там нет, но я понял из моего теста.Таким образом, кажется, что файл существует, когда устройство / эмулятор работает, но я не могу прочитать его содержимое?
Есть идеи?
Спасибо
Søren