GeoODK 收集表格在切换 phone 的语言时不翻译
GeoODK Collect forms not translating when switching phone's language
正如标题所说,当我为 xml 表单的标签指定翻译语言时,我将手机的语言切换为指定的语言,应用程序本身得到了正确的翻译,但表单保留了下来英语。
起初我想翻译成阿拉伯语,我指定了 العربيو作为语言翻译。没啥事儿。
我参考了文档并指定 "label::Español" 来检测西班牙语并在 phone 上使用西班牙语时进行翻译,因为我认为“العربي⑩”可能不是阿拉伯语的正确选择器。仍然使用 Español,表格仍未翻译。
我需要任何有 ODK Collect Form 翻译经验的人来帮助我。我用的XML:
<?xml version="1.0"?>
<h:html xmlns="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:jr="http://openrosa.org/javarosa" xmlns:orx="http://openrosa.org/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<h:head>
<h:title>arabic sample</h:title>
<model>
<itext>
<translation default="true()" lang="default">
<text id="/sampletest/select_example/yes:label">
<value>Yes</value>
</text>
<text id="/sampletest/select_example/no:label">
<value>No</value>
</text>
<text id="/sampletest/select_example:label">
<value>This is a select_one type question.</value>
</text>
</translation>
<translation lang="العربية">
<text id="/sampletest/select_example/yes:label">
<value>نعم</value>
</text>
<text id="/sampletest/select_example/no:label">
<value>كلا</value>
</text>
<text id="/sampletest/select_example:label">
<value>اختر واحد</value>
</text>
</translation>
</itext>
<instance>
<sampletest id="arabic sample">
<select_example/>
<required_text/>
<datetime_test/>
<geopoint_test/>
<meta>
<instanceID/>
</meta>
</sampletest>
</instance>
<bind nodeset="/sampletest/select_example" type="select1"/>
<bind nodeset="/sampletest/required_text" required="true()" type="string"/>
<bind nodeset="/sampletest/datetime_test" type="dateTime"/>
<bind nodeset="/sampletest/geopoint_test" type="geopoint"/>
<bind calculate="concat('uuid:', uuid())" nodeset="/sampletest/meta/instanceID" readonly="true()" type="string"/>
</model>
</h:head>
<h:body>
<select1 ref="/sampletest/select_example">
<label ref="jr:itext('/sampletest/select_example:label')"/>
<hint>In the type column you must include the name of a choices list that sets the available options. Choices lists are specified on the choices sheet.</hint>
<item>
<label ref="jr:itext('/sampletest/select_example/yes:label')"/>
<value>Yes</value>
</item>
<item>
<label ref="jr:itext('/sampletest/select_example/no:label')"/>
<value>no</value>
</item>
</select1>
<input ref="/sampletest/required_text">
<label>Required field</label>
<hint>You have to enter something to continue.</hint>
</input>
<input ref="/sampletest/datetime_test">
<label>Enter a date and a time:</label>
</input>
<input ref="/sampletest/geopoint_test">
<label>Record your location:</label>
<hint>GPS coordinates can only be collected when outside.</hint>
</input>
</h:body>
</h:html>
我认为您的 XForm 可能没问题。加载表单后,您是否在 ODK Collect 本身中切换了表单语言? (在表单视图中单击菜单按钮)。我相信这是改变 形式 语言的唯一方法。
正如标题所说,当我为 xml 表单的标签指定翻译语言时,我将手机的语言切换为指定的语言,应用程序本身得到了正确的翻译,但表单保留了下来英语。
起初我想翻译成阿拉伯语,我指定了 العربيو作为语言翻译。没啥事儿。 我参考了文档并指定 "label::Español" 来检测西班牙语并在 phone 上使用西班牙语时进行翻译,因为我认为“العربي⑩”可能不是阿拉伯语的正确选择器。仍然使用 Español,表格仍未翻译。
我需要任何有 ODK Collect Form 翻译经验的人来帮助我。我用的XML:
<?xml version="1.0"?>
<h:html xmlns="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:jr="http://openrosa.org/javarosa" xmlns:orx="http://openrosa.org/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<h:head>
<h:title>arabic sample</h:title>
<model>
<itext>
<translation default="true()" lang="default">
<text id="/sampletest/select_example/yes:label">
<value>Yes</value>
</text>
<text id="/sampletest/select_example/no:label">
<value>No</value>
</text>
<text id="/sampletest/select_example:label">
<value>This is a select_one type question.</value>
</text>
</translation>
<translation lang="العربية">
<text id="/sampletest/select_example/yes:label">
<value>نعم</value>
</text>
<text id="/sampletest/select_example/no:label">
<value>كلا</value>
</text>
<text id="/sampletest/select_example:label">
<value>اختر واحد</value>
</text>
</translation>
</itext>
<instance>
<sampletest id="arabic sample">
<select_example/>
<required_text/>
<datetime_test/>
<geopoint_test/>
<meta>
<instanceID/>
</meta>
</sampletest>
</instance>
<bind nodeset="/sampletest/select_example" type="select1"/>
<bind nodeset="/sampletest/required_text" required="true()" type="string"/>
<bind nodeset="/sampletest/datetime_test" type="dateTime"/>
<bind nodeset="/sampletest/geopoint_test" type="geopoint"/>
<bind calculate="concat('uuid:', uuid())" nodeset="/sampletest/meta/instanceID" readonly="true()" type="string"/>
</model>
</h:head>
<h:body>
<select1 ref="/sampletest/select_example">
<label ref="jr:itext('/sampletest/select_example:label')"/>
<hint>In the type column you must include the name of a choices list that sets the available options. Choices lists are specified on the choices sheet.</hint>
<item>
<label ref="jr:itext('/sampletest/select_example/yes:label')"/>
<value>Yes</value>
</item>
<item>
<label ref="jr:itext('/sampletest/select_example/no:label')"/>
<value>no</value>
</item>
</select1>
<input ref="/sampletest/required_text">
<label>Required field</label>
<hint>You have to enter something to continue.</hint>
</input>
<input ref="/sampletest/datetime_test">
<label>Enter a date and a time:</label>
</input>
<input ref="/sampletest/geopoint_test">
<label>Record your location:</label>
<hint>GPS coordinates can only be collected when outside.</hint>
</input>
</h:body>
</h:html>
我认为您的 XForm 可能没问题。加载表单后,您是否在 ODK Collect 本身中切换了表单语言? (在表单视图中单击菜单按钮)。我相信这是改变 形式 语言的唯一方法。