<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| Foreign Characters
| -------------------------------------------------------------------
| This file contains an array of foreign characters for transliteration
| conversion used by the Text helper
|
*/
$foreign_characters = array('223'	=>	"ss", // ß
							'224'	=>  "a",  
							'225'	=>  "a", 
							'226'	=>	"a", 
							'229'	=>	"a",
							'227'	=>	"ae", 
							'230'	=>	"ae", 
							'228'	=>	"ae",
							'231'	=>	"c",
							'232'	=>	"e",  // è
							'233'	=>	"e",  // é
							'234'	=>	"e",  // ê  								
							'235'	=>	"e",  // ë
							'236'	=>  "i",
							'237' 	=>  "i",
							'238' 	=>	"i",
							'239' 	=>	"i",
							'241'	=>	"n",
							'242'	=>  "o",
							'243'	=>  "o",
							'244' 	=>	"o", 
							'245'	=>	"o",
							'246'	=>	"oe", // ö
							'249'	=>  "u",
							'250' 	=>  "u", 
							'251' 	=>	"u",
							'252'	=>	"ue", // ü
							'255'	=>	"y",
							'257'	=>	"aa", 
							'269'	=>	"ch", 
							'275'	=>	"ee", 
							'291'	=>	"gj", 
							'299'	=>	"ii", 
							'311'	=>	"kj", 
							'316'	=>	"lj", 
							'326'	=>	"nj", 
							'353'	=>	"sh", 
							'363'	=>	"uu", 
							'382'	=>	"zh",
							'256'	=>	"aa", 
							'268'	=>	"ch", 
							'274'	=>	"ee", 
							'290'	=>	"gj", 
							'298'	=>	"ii", 
							'310'	=>	"kj", 
							'315'	=>	"lj", 
							'325'	=>	"nj", 
							'352'	=>	"sh", 
							'362'	=>	"uu", 
							'381'	=>	"zh",
							);				


/* End of file foreign_chars.php */
/* Location: ./application/config/foreign_chars.php */