src -> main -> res -> 값 아래에있는 string.xml 파일을 전체적으로 읽고 싶습니다.값 폴더에있는 파일을 읽는 방법
내 응용 프로그램에서 발생할 수있는 일부 현지화 문제를 처리하기 위해 특정 파일이 필요합니다. 선택한 장치 언어가 프랑스어이지만, 여전히 기본 영어 문자열의 일부 값을 원합니다. .xml 파일 은 특정 시나리오의 경우에만입니다. 따라서 values / strings.xml에있는 모든 리소스는 values-fr/strings.xml에 있어야하며 값 -fr 이 아닌 값은 옵션에서 제거해야합니다. 우리가 values/strings.xml
에서 values-fr/strings.xml
파일에서 text_name
의 값을 수신하지 것이기 때문에
- 물론,
getString(R.string.text_name)
의 종류의 솔루션은 허용되지 않습니다. 이뿐만 아니라 도움이되지 않습니다 :
이getResources().getIdentifier("text_name", "string", getPackageName());
이뿐만 아니라 도움이되지 않습니다, string.xml 원시 자산이 아니기 때문에.
이
context.getResources().openRawResource(R.raw.test)
context.getAssets().open("values/string.xml");
Uri.parse("android.resource://" + context.getPackageName() + resource_id_for_string_file);
:
사용하여 URI를 파일 경로 :
File file = new File("/src/res/values/strings.xml"); File file = new File("/res/values/strings.xml");
this post (
class.getClass().getResourceAsStream(...)
)도 작동하지 않았습니다.
솔직히 말해서 꽤 쉬울 지 모르지만 나는이 문제를 해결할 수있는 곳을 찾을 수 없습니다.
여전히 영어 값을 추가 할 수 있습니다를 통과해야 프랑스어 파일의 특정 키에 대해?! – Yazan
접근 방식이 올바르지 않습니다. 'values-fr/strings.xml'과'values / strings.xml'에서 몇몇 값을 읽으려면 값/문자열에서 가져와야 할 값을 추가하지 마십시오. xml'을'values-fr/strings.xml'으로 변환합니다. 특정 로케일에 대한 값이없는 경우 기본 로케일이 사용됩니다. –
고마워,하지만 가치 - fr을 문자열에있는 모든 리소스가 필요하기 때문에 그것은 도움이되지 않습니다 (특정 시나리오에서 해당 파일에 액세스 할 수 및 값/strings.xml 파일을 이동하려면) 원하는 경우 – Dus