mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-13 08:09:41 +00:00
add translator helper for mvc model files
This commit is contained in:
parent
9e08bbcf60
commit
0cfe4bc4de
78
scripts/translate/plugins/models.py
Normal file
78
scripts/translate/plugins/models.py
Normal file
@ -0,0 +1,78 @@
|
||||
"""
|
||||
Copyright (c) 2015 Deciso B.V.
|
||||
|
||||
part of OPNsense (https://www.opnsense.org/)
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : translate
|
||||
function: collect acl translatable text
|
||||
|
||||
|
||||
|
||||
"""
|
||||
__author__ = 'Ad Schellevis'
|
||||
|
||||
def recursiveParseModel(xmlNode):
|
||||
for childNode in xmlNode:
|
||||
for tag in recursiveParseModel(childNode):
|
||||
yield tag
|
||||
|
||||
if xmlNode.tag == 'ValidationMessage':
|
||||
yield xmlNode.text
|
||||
|
||||
def recursiveParseMenu(xmlNode):
|
||||
for childNode in xmlNode:
|
||||
for tag in recursiveParseMenu(childNode):
|
||||
yield tag
|
||||
|
||||
if xmlNode.attrib.has_key('VisibleName'):
|
||||
yield xmlNode.attrib['VisibleName']
|
||||
else:
|
||||
yield xmlNode.tag
|
||||
|
||||
def getTranslations(root):
|
||||
import os
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
rootpath='%s/opnsense/mvc/app/models/OPNsense/'%root
|
||||
|
||||
|
||||
for root, dirs, files in os.walk(rootpath, topdown=False):
|
||||
for name in files:
|
||||
if name.lower()[-4:] == '.xml':
|
||||
filename = '%s/%s'%(root,name)
|
||||
tree = ET.parse(filename)
|
||||
root = tree.getroot()
|
||||
if root.tag == 'model':
|
||||
for tag in recursiveParseModel(root):
|
||||
yield tag
|
||||
elif root.tag == 'menu':
|
||||
for tag in recursiveParseMenu(root):
|
||||
yield tag
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user