<?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 */