关于如何翻译gluon桌面程序

时间:2017-10-08 16:05:27

标签: javafx gluon gluon-desktop

Aloha家伙,

  1. 你能解释一下这个文件有什么用吗? 在项目资源管理器中 - > Gradle:org.controlsfx:controlsfx:8.40.12 - >资源Bundel'controlfx' - >这里是不同语言的不同文件。我可以用这个翻译我的程序内容englisch,德国,波兰语,我可以使它可编辑

    2.如果第一个是一个愚蠢的想法我怎么能翻译它? 我的想法是make translate properties lake this.properties,germany.properties,polish.properties save in resources 与此相关的

        stateManager.setPersistenceMode(StateManager.PersistenceMode.USER);
    

    尝试{         input = new FileInputStream(stateManager.getProperty(“Languge”)。orElse(“”)。toString()。trim()+“。properties”); //加载属性文件         prop.load(输入);

        // get the property value and print it out
        System.out.println(prop.getProperty("database"));
        System.out.println(prop.getProperty("dbuser"));
        System.out.println(prop.getProperty("dbpassword"));
    
    } catch (IOException ex) {
        ex.printStackTrace();
    } finally {
        if (input != null) {
            try {
                input.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

2 个答案:

答案 0 :(得分:0)

如果您使用IDE的Gluon插件创建一个Desktop项目,例如使用Multi View Project模板,您会注意到每个视图都有一个属性文件。

此默认属性文件包含英文键值。但是,您可以轻松地创建该文件的副本,使用不同的区域设置重命名该文件,并使用相同的键,在该区域设置中提供值。

例如,对于primary.properties

label.text=Welcome
button.text=Go to Secondary View

您可以在同一个包中创建primary_es.properties,其中包含:

label.text=Bienvenido
button.text=Ir a Vista Secundaria

一旦给定属性文件有多个语言环境,IDE将立即显示所有语言环境:

netbeans locale

就是这样,您不需要更改代码中的任何内容。默认语言环境将用于选择正确的属性文件。

显然,您可以在运行时选择其他语言环境。为此,您将不得不使用不同的资源包:

@Override
public void init() {
     // other Locale different than the default:
    resourceBundle = ResourceBundle.getBundle(
          "<your.views.package>.primary",
          Locale.ENGLISH);
    ...
}

答案 1 :(得分:0)

@JoséPereda

你为这些财产开采这样的东西吗? image where i save Properties

我在WelcomeController中也这样做

public void initialize() {
    String language;
    Locale currentLocale;
    language = new String("pl");
    currentLocale = new Locale(language);
    ResourceBundle resourceBundle = ResourceBundle.getBundle("bundles/language",currentLocale);

    System.out.println(resourceBundle.getString( "greetings" ));
}

我这样做

language = new String("pl");

因为这个

Locale.ENGLISH

没有静态Locale.POLISH

我也将保存例如(德国或德|波兰或pl |英语或en)作为设置

有了这个 stateManager.setPersistenceMode( StateManager.PersistenceMode.USER); stateManager.setProperty( "language", "de" );

或更好的程序设置不在用户C:\ Users \ Harry05.gluon-particle