All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.docx4j.fonts.LanguageTagToScriptMapping Maven / Gradle / Ivy

Go to download

docx4j is a library which helps you to work with the Office Open XML file format as used in docx documents, pptx presentations, and xlsx spreadsheets.

There is a newer version: 11.4.11
Show newest version
package org.docx4j.fonts;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LanguageTagToScriptMapping {

	protected static Logger log = LoggerFactory.getLogger(LanguageTagToScriptMapping.class);	
	
	/* The purpose of this class is to map an attribute value
	 * from w:themeFontLang in the settings part,  
	 * for example:
	 * 
	 *     
	 * 
	 * to the value of @script in the theme part.
	 * 
	 *  
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        See generally http://social.msdn.microsoft.com/Forums/en-US/ef7b4b55-9d38-4cd8-89f0-38389419c672/determining-font-script-from-majorminorfont-and-lang-and-text-in-drawingml
        and in particular the helpful xlsx kindly supplied by Todd Main.
        
	 */
	

	public static String getScriptForLanguageTag(String langTag) {
		
		String lang = langTag;
		int pos = lang.indexOf('-');
		if (pos>-1) {
			lang = lang.substring(0, pos);
		}
		
		log.debug("lang: " + lang);
		
		//    
		if (lang.equals("ja")) {
			return "Jpan";
		}
		
		//    
		if (lang.equals("ko")) {
			return "Hang";
		}

		if (lang.equals("zh")) {
		
			//    
			if (langTag.equals("zh_CN")
					|| langTag.equals("zh_SG")) {
				// Mainland China and Singapore both use simplified characters
				return "Hans";
			} else {
				//    
				// Chinese (Traditional Han)
				return "Hant";				
			}
		}
		
		//    
		if (lang.equals("ar")) {
			return "Arab";
		}
		
		//    
		if ("he,yi,iw".contains(lang)) {
			return "Hebr";
		}
		
		//    
		if (lang.equals("th")) {
			return "Thai";
		}
		
		//    
		if ("ti,bwo,eth,kxh,mdy".contains(lang)) {
			return "Ethi";
		}
		
		//    
		if ("bn,as,mni".contains(lang)) {
			return "Beng";
		}
		
		//    
		if (lang.equals("gu")) {
			return "Gujr";			
		}
		
		//    
		if (lang.equals("km")) {
			return "Khmr";
		}
		
		//    
		if (lang.equals("kn")) {
			return "Knda";
		}
		
		//    
		if (lang.equals("pa")) {
			return "Guru";
		}
		
		//    
		if (lang.equals("iu")) {
			return "Cans";
		}
		
		//    
		if (lang.equals("chr")) {
			return "Cher";
		}
		
		//  omitted
		// see http://en.wikipedia.org/wiki/Yi_script
		
		//    
		if (lang.equals("bo")) {
			return "Tibt";
		}
		
		//    
		if (lang.equals("dv")) {
			return "Thaa";
		}
		
		//    
		if ("hi,ks,kok,mr,ne,sa,sd".contains(lang)) {
			return "Deva";
		}
		
		//    
		if (lang.equals("te")) {
			return "Telu";
		}
		
		//    
		if (lang.equals("ta")) {
			return "Taml";
		}
		
		//    
		if (lang.equals("syr")) {
			return "Syrc";
		}
		
		//    
		if (lang.equals("or")) {
			return "Orya";
		}
		
		//    
		if (lang.equals("ml")) {
			return "Mlym";
		}
		
		//    
		if (lang.equals("lo")) {
			return "Laoo";
		}
		
		//    
		if (lang.equals("si")) {
			return "Sinh";
		}
		
		//    
		
		//    
		if (lang.equals("vi")
				|| lang.equals("lha")
				|| lang.equals("nut")
				) {
			return "Viet";
		}
		
		//    
		
		//    
		if (lang.equals("ka")) {
			return "Geor";
		}
		
		return null;
	}
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy