Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.dermetfan.someLibgdxTests.other;
- import java.io.IOException;
- import java.util.Locale;
- import com.badlogic.gdx.Gdx;
- import com.badlogic.gdx.assets.loaders.FileHandleResolver;
- import com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver;
- import com.badlogic.gdx.files.FileHandle;
- import com.badlogic.gdx.utils.ObjectMap;
- import com.badlogic.gdx.utils.XmlReader;
- import com.badlogic.gdx.utils.XmlReader.Element;
- /** loads and holds Strings from an XML file */
- public class Language {
- /** used to resolve Strings */
- private FileHandleResolver resolver = new InternalFileHandleResolver();
- /** the name of the language */
- private String language = Locale.getDefault().toString();
- /** the content of the language */
- private ObjectMap<String, String> content = new ObjectMap<String, String>();
- /** @see #load(String) */
- public Language(String file) {
- load(file);
- }
- /** @see #load(FileHandle) */
- public Language(FileHandle file) {
- load(file);
- }
- /** @param resolver the {@link #resolver}
- * @see #load(String) */
- public Language(String file, FileHandleResolver resolver) {
- this.resolver = resolver;
- load(file);
- }
- /** @see #load(String, String) */
- public void load(String file) {
- load(file, null);
- }
- /** @see #load(FileHandle, String) */
- public void load(String file, String language) {
- load(resolver.resolve(file), language);
- }
- /** @see #load(FileHandle, String) */
- public void load(FileHandle file) {
- load(file, null);
- }
- /** @param file the language XML file to load
- * @param language The child of the root element. If null, root will be used. */
- public void load(FileHandle file, String language) {
- XmlReader xml = new XmlReader();
- Element root = null;
- try {
- root = xml.parse(file);
- } catch(IOException e) {
- Gdx.app.error(Language.class.getSimpleName(), "could not load language file \"" + file + "\"\n" + e.getStackTrace());
- }
- if(root == null)
- return;
- language = root.getName();
- Element lang = language == null || root.getName().equals(language) ? root : root.getChildByNameRecursive(language);
- if(lang == null)
- return;
- content.clear();
- for(int i = 0; i < lang.getChildCount(); i++) {
- Element entry = lang.getChild(i);
- content.put(entry.getName(), entry.getText());
- }
- }
- /** @return the value associated with the given {@code key} */
- public String get(String key) {
- return content.get(key);
- }
- /** @return the {@link #resolver} */
- public FileHandleResolver getResolver() {
- return resolver;
- }
- /** @param resolver the {@link #resolver} to set */
- public void setResolver(FileHandleResolver resolver) {
- this.resolver = resolver;
- }
- /** @return the {@link #language} */
- public String getLanguage() {
- return language;
- }
- /** @return the {@link #content} */
- public ObjectMap<String, String> getContent() {
- return content;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement