|
|
Ok!
|
|
|
Ok!
|
|---|---|---|---|---|
| 239 | $category["name"] = "Мимоза";
$category["id"] = 123456;
$arParamsTrans = array("replace_space"=>"-","replace_other"=>"-");
$arCatalogSectionFields = array(
"ACTIVE" => 'Y',
"IBLOCK_ID" => $bitrixCatalogBlockId,
"NAME" => $category["name"],
"XML_ID" => $category["id"],
"IBLOCK_SECTION_ID" => $bitrixSectionId,
);
$arCatalogSectionFields["CODE"] = $trans = Cutil::translit($category["name"],"ru",$arParamsTrans);
print_r($arCatalogSectionFields); | битрикс, транслит | 300 | Битрикс транслит |
| 159 |
function lat2cyr($s)
{
$sb = "";
$i = 0;
$lc = false;
while ($i < strlen($s)) {
$ch = substr($s, $i, 1);
$lc = ctype_lower($ch); // true/false
$ch = mb_strtoupper($ch);
if ($ch == 'J') { // Префиксная нотация вначале
$i++; // преходим ко второму символу сочетания
$ch = strtoupper(substr($s, $i, 1));
switch ($ch) {
case 'O':
$sb .= ch('Ё', $lc);
break;
case 'H':
if ($i + 1 < strlen($s) && mb_strtoupper(substr($s, $i + 1, 1) == 'H')){ // проверка на постфикс (вариант JHH)
$sb .= ch('Ъ', $lc);
$i++; // пропускаем постфикс
}
else{
$sb .= ch('Ь', $lc);
}
break;
case
'U': $sb .= ch('Ю', $lc); break;
case 'A': $sb = ch('Я', $lc); break;
default: break;
}
} else if ($i + 1 < strlen($s) && mb_strtoupper(substr($s, $i + 1, 1)) == 'H') { // Постфиксная нотация, требует информации о двух следующих символах. Для потока придется сделать обертку с очередью из трех символов.
switch ($ch) {
case 'Z':
$sb .= ch('Ж', $lc);
break;
case 'K':
$sb .= ch('Х', $lc);
break;
case 'C':
$sb .= ch('Ч', $lc);
break;
case 'S':
if ($i + 2 < strlen($s) && mb_strtoupper(substr($s, $i + 2, 1)) == 'H') { // проверка на двойной постфикс
$sb .= ch('Щ', $lc);
$i++; // пропускаем первый постфикс
} else {
$sb .= ch('Ш', $lc);
}
break;
case 'E':
$sb .= ch('Э', $lc);
break;
case 'I':
$sb .= ch('Ы', $lc);
break;
default:
break;
}
$i++; // пропускаем постфикс
} else {// одиночные символы
switch ($ch) {
case 'A':
$sb .= ch('А', $lc);
break;
case 'B':
$sb .= ch('Б', $lc);
break;
case 'V':
$sb .= ch('В', $lc);
break;
case 'G':
$sb .= ch('Г', $lc);
break;
case 'D':
$sb .= ch('Д', $lc);
break;
case 'E':
$sb .= ch('Е', $lc);
break;
case 'Z':
$sb .= ch('З', $lc);
break;
case 'I':
$sb .= ch('И', $lc);
break;
case 'Y':
if (mb_strtoupper(substr($s, $i + 1, 1) === ' ')){ // проверка на пробел после Y
$sb .= ch('И', $lc);
$i++; // пропускаем постфикс
}
else{
$sb .= ch('Й', $lc);
}
break;
case 'K':
$sb .= ch('К', $lc);
break;
case 'L':
$sb .= ch('Л', $lc);
break;
case 'M':
$sb .= ch('М', $lc);
break;
case 'N':
$sb .= ch('Н', $lc);
break;
case 'O':
$sb .= ch('О', $lc);
break;
case 'P':
$sb .= ch('П', $lc);
break;
case 'R':
$sb .= ch('Р', $lc);
break;
case 'S':
$sb .= ch('С', $lc);
break;
case 'T':
$sb .= ch('Т', $lc);
break;
case 'U':
$sb .= ch('У', $lc);
break;
case 'F':
$sb .= ch('Ф', $lc);
break;
case 'C':
$sb .= ch('Ц', $lc);
break;
default:
$sb .= ch($ch, $lc);
}
}
$i++; // переходим к следующему символу
}
return (string)$sb;
}
function cyrlat($ch)
{
switch ($ch) {
case 'А':
return "A";
case 'Б':
return "B";
case 'В':
return "V";
case 'Г':
return "G";
case 'Д':
return "D";
case 'Е':
return "E";
case 'Ё':
return "JO";
case 'Ж':
return "ZH";
case 'З':
return "Z";
case 'И':
return "I";
case 'Й':
return "Y";
case 'К':
return "K";
case 'Л':
return "L";
case 'М':
return "M";
case 'Н':
return "N";
case 'О':
return "O";
case 'П':
return "P";
case 'Р':
return "R";
case 'С':
return "S";
case 'Т':
return "T";
case 'У':
return "U";
case 'Ф':
return "F";
case 'Х':
return "KH";
case 'Ц':
return "C";
case 'Ч':
return "CH";
case 'Ш':
return "SH";
case 'Щ':
return "SHH";
case 'Ъ':
return "JHH";
case 'Ы':
return "IH";
case 'Ь':
return "JH";
case 'Э':
return "EH";
case 'Ю':
return "JU";
case 'Я':
return "JA";
default:
return $ch;
}
}
function cyr2lat($s)
{
$sb = "";
$ch = preg_split('//u', $s, null, PREG_SPLIT_NO_EMPTY);
for ($i = 0; $i < count($ch); $i++) {
$lc = preg_match('~^p{Lu}~u', $ch[$i]) ? 0 : 1;
$v = $ch[$i];
$l = mb_strtoupper($v);
$c = cyrlat($l);
$lat = ch($c, $lc);
$sb .= $lat;
}
return $sb;
}
/**
* Вспомогательная функция для восстановления регистра
*/
function ch($ch, $tolower)
{
return $tolower ? mb_strtolower($ch) : mb_strtoupper($ch);
}
echo cyr2lat("провинции Арма") . "
";
echo lat2cyr("Provinces of Lightness") . "
";
| транслит, ретранслит | 100 | Транслит русско-латинский, латинско-русский |
| 147 | $r = str_replace("ʹ", "", transliterator_transliterate('Any-Latin; Latin-ASCII', "Пробежаться на травалотре"));
echo $r; | транслитератор, php, translit | 1470 | Транслитератор на php |
| 54 | //Если с английского на русский, то передаём вторым параметром true.
var transliterate = (
function() {
var
rus = "щ ш ч ц ю я ё ж ъ ы э а б в г д е з и й к л м н о п р с т у ф х ь".split(/ +/g),
eng = "shh sh ch cz yu ya yo zh `` y e a b v g d e z i j k l m n o p r s t u f x ``".split(/ +/g);
return function(text, engToRus) {
var x;
for(x = 0; x < rus.length; x++) {
text = text.split(engToRus ? eng[x] : rus[x]).join(engToRus ? rus[x] : eng[x]);
text = text.split(engToRus ? eng[x].toUpperCase() : rus[x].toUpperCase()).join(engToRus ? rus[x].toUpperCase() : eng[x].toUpperCase());
}
return text;
}
}
)(); | транслит, translit, латинский-русский, lat-cyr, javascript, js | 350 | Транслитерация с английского в русский Яваскрипт |
| 1 | function rus2translit($string) {
$converter = array(
'а' => 'a', 'б' => 'b', 'в' => 'v',
'г' => 'g', 'д' => 'd', 'е' => 'e',
'ё' => 'e', 'ж' => 'zh', 'з' => 'z',
'и' => 'i', 'й' => 'y', 'к' => 'k',
'л' => 'l', 'м' => 'm', 'н' => 'n',
'о' => 'o', 'п' => 'p', 'р' => 'r',
'с' => 's', 'т' => 't', 'у' => 'u',
'ф' => 'f', 'х' => 'h', 'ц' => 'c',
'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch',
'ь' => 'j', 'ы' => 'y', 'ъ' => 'j',
'э' => 'e', 'ю' => 'yu', 'я' => 'ya',
'А' => 'A', 'Б' => 'B', 'В' => 'V',
'Г' => 'G', 'Д' => 'D', 'Е' => 'E',
'Ё' => 'E', 'Ж' => 'Zh', 'З' => 'Z',
'И' => 'I', 'Й' => 'Y', 'К' => 'K',
'Л' => 'L', 'М' => 'M', 'Н' => 'N',
'О' => 'O', 'П' => 'P', 'Р' => 'R',
'С' => 'S', 'Т' => 'T', 'У' => 'U',
'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',
'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sch',
'Ь' => 'j', 'Ы' => 'Y', 'Ъ' => 'j',
'Э' => 'E', 'Ю' => 'Yu', 'Я' => 'Ya',
' ' => '_', '№' => 'No'
);
return strtr($string, $converter);
}
function str2url($str) {
$str = rus2translit($str);
$str = strtolower($str);
$str = preg_replace('~[^-a-z0-9_]+~u', '-', $str);
$str = trim($str, "-");
return $str;
} | translit, транслит, php | 15 | Транслит |