我尝试在我的网站上实现服务器端多语言服务。这是文件夹上的结构:
data
--locale
static
--css
--images
--js
templates
--index.html
--page1.html
...
main.py
我使用Crowdin翻译网站,输出文件是XML格式。 locale文件夹包含每种语言的一个文件夹,每个页面都有一个xml文件。
我在Cookies上存储语言,这是我的python代码:
from flask import request
from xml.dom.minidom import parseString
def languages(page):
langcode = request.cookies.get("Language")
xml = "/data/locale/%s/%s.xml" % (langcode, page)
dom = parseString(xml)
................
.............
我在每个页面中调用,例如languages("index")
这是导出的xml文件的示例
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
This is a description of my page
-->
<resources>
<string name="name1">value 1</string>
<string name="name2">value 2</string>
<string name="name3">value 3</string>
</resources>
但是,我有以下错误ExpatError: not well-formed (invalid token): line 1, column 0
答案 0 :(得分:1)
如果要解析文件,则必须使用parse()
。 parseString()
将解析一个字符串,即你的文件名。
from flask import request
from xml.dom.minidom import parse
def languages(page):
langcode = request.cookies.get("Language")
xml = "/data/locale/%s/%s.xml" % (langcode, page)
dom = parse(xml)