GWTP mergelocales.py的问题

时间:2012-10-17 16:18:28

标签: python gwt gwtp

我正在尝试使用mergelocales.py脚本,但我无法使其正常工作。

在我的ui.xml(我用来测试它的那个)中,我有这个语言环境:

<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
    ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator"
    ui:generateLocales="en_US, es_ES"
    ui:defaultLocale="es_ES"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">

然后我使用“-extra extras”参数编译我的项目。这会在我的项目中生成一个“extras”目录,其中有一个名为“myModule”的文件夹,在此文件夹中是生成的.properties文件:

/myproject/extras/myModule/com.mycompany.myproject.client.mvp.views.MyViewImplMyViewImplUiBinderImplGenMessages_en_US.properties
/myproject/extras/myModule/com.mycompany.myproject.client.mvp.views.MyViewImplMyViewImplUiBinderImplGenMessages_es_ES.properties

现在,我正在尝试运行mergelocales.py来获取LocalizableResources * .properties文件,当我尝试运行时:

python2.5~ / Downloads / mergelocales.py extras / myModule src / main / java / com / google / gwt / i18n / client /

我得到以下堆栈跟踪:

Skipping non-default locale in extra directory: com.mycompany.myproject.client.mvp.views.MyViewImplMyViewImplUiBinderImplGenMessages_en_US.properties
Skipping non-default locale in extra directory: com.mycompany.myproject.client.mvp.views.MyViewImplMyViewImplUiBinderImplGenMessages_es_ES.properties
Traceback (most recent call last):
  File "/Users/admin/Downloads/mergelocales.py", line 497, in <module>
    main()    
  File "/Users/admin/Downloads/mergelocales.py", line 131, in main
    mergeLocales( args[0], args[1] )
  File "/Users/admin/Downloads/mergelocales.py", line 466, in mergeLocales
    pathname = os.path.join( resourcesDir, defaultLocaleFilename )
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/posixpath.py", line 60, in join
    if b.startswith('/'):
AttributeError: 'NoneType' object has no attribute 'startswith'

为了让这个脚本有效,我有什么遗漏吗?

1 个答案:

答案 0 :(得分:0)

现在,我正在尝试运行mergelocales.py来获取LocalizableResources * .properties文件,并且[...]我得到以下堆栈跟踪...

您必须自己创建空白的LocalizableResource.properties文件手动,它们将由mergeLocales脚本填充。见这里:

假设我们希望我们的应用程序也可以用法语提供。 我们需要创建两个名为LocalizableResource.properties和LocalizableResource_fr.properties的空文件。 LocalizableResource.properties将包含默认(英语)文本,而LocalizableResource_fr.properties将包含法语文本。这些文件应位于src / main / resources / com / google / gwt / i18n / client。

来自http://blog.arcbees.com/2015/09/15/i18n-using-gwts-uibinder/