Ir para conteúdo
  • 0

[Bukkit] Linguagem


sadUKZ

Pergunta

Queria saber como posso fazer um sistema de linguagem tipo BR, EN ai queria como posso pega as mensagem da config tipo BR iria ter um yml file e o EN tbm iria ter um ai queria saber como posso pegar

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Método mais eficiente e fácil que tem.

 

Crie seu arquivo de linguagem

Arquivo de linguagem:

pt_br.properties

SUA_MSG1: &cOla
SUA_MSG2: &aeaeaeae

Cria uma classe para a lang

Classe Lang:

package com.systemplugin.digitalz;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Properties;

public enum Lang {

	SUA_MSG1,
	SUA_MSG2;
	
    @Override
    public String toString() {
        return LanguageHelper.getString(name());
    }

    public static class LanguageHelper {

        private static Properties p = new Properties();

        public LanguageHelper(File f) throws IOException {
            final Reader in = new InputStreamReader(new FileInputStream(f), "UTF-8");
            LanguageHelper.p.load(in);
        }

        protected LanguageHelper(String s) throws IOException {
            final Reader in = new InputStreamReader(new FileInputStream(new File(s)), "UTF-8");
            LanguageHelper.p.load(in);
        }

        private static String getString(String node) {
            String prop = LanguageHelper.p.getProperty(node);
            if (prop == null) prop = "Language property \"" + node + "\" not defined.";
            return prop;
        }
    }

}

Na sua classe principal em OnEnable():

        //Lang File
        String lang = Config.c.getString("Lang.language_file");  //Aqui vc pega a opcao da lang que esta na config 
        if (!new File(this.getDataFolder() + File.separator + "lang" + File.separator + lang + ".properties").exists()) {
            this.saveResource("lang" + File.separator + lang + ".properties", false);
        }

        try {
            new Lang.LanguageHelper(new File(this.getDataFolder(), "lang" + File.separator + lang + ".properties"));
        } catch (IOException e) {
            this.log.severe("Nao foi possivel encontrar o arquivo de linguagem: " + e.getMessage());
            this.log.severe("Desabilitando o plugin.");
            this.setEnabled(false);
            return;
        }

Para dar reload nas mensagens do arquivo.properties:

        String lang = Config.c.getString("Lang.language_file");
        try {
            new Lang.LanguageHelper(new File(this.getDataFolder(), "lang" + File.separator + lang + ".properties"));
        } catch (IOException e) {
            this.log.severe("Nao foi possivel recarregar o arquivo de linguagem: " + e.getMessage());
        }

Ai para mostrar a mensagem:

p.sendMessage(Lang.SUA_MSG1.toString());
Editado por DigitalZero
Link para o comentário
Compartilhar em outros sites

  • 0

Você sabe criar arquivos yml separados? Dá pra fazer um arquivo pra cada linguagem, aí depois é só abrir o arquivo da linguagem correspondente e pegar as mensagens.

 

Sim mais tipo quero coloca por config sabe Linguagem: BR ai vai pega as mensagem br

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...