ã€ãŸãã次ã®ç®çã§ãäœããã®æ¹æ³ã§ããã¹ãããŒã¿ãç¶æ¿ã·ã¹ãã ã«è»¢éãããšããåé¡ãçºçããŸãã
- 人-ç¶æ¿ãããã·ã¹ãã ã®ãªãã¬ãŒã¿ã¯ãåä¿¡ããããã¹ãããé³å£°ã§ãèªã¿åãããšãã§ããŸãã
- å¿ èŠã«å¿ããŠãå ã®ããªã«æåããã¹ããæ確ã«åŸ©å ããããšãã§ããŸã
éå±ããªãããã«ã人éã®äºææ§ãšåçŽãã«é¢é£ãããã詳现ãªèŠä»¶ãè¿œå ããŸãã
- å¥èªç¹ãçºé³åºå¥ç¬Šå·èŠçŽ ã䜿çšããã«ãçãæå³ã§æåã®ã¿ã䜿çšããŸãïŒããã«ãããã±ãŒã¹ãä¿åããããšãã§ããŸãïŒ
- åãœãŒã¹æåãä»ã®æåãšã¯ç¬ç«ããŠå€æããŸãïŒãåèªã®å é /æ«å°Ÿããªã©ã®å°é£ãªãïŒ
- ã§ããã ãçã眮æãçæ³çã«ã¯1æå
- å¯èœãªéãåçŽãªéå€æã«ãŒã«ãããšãã°ã眮æã¯Fanoæ¡ä»¶ãæºããå¿ èŠããããŸã
- ãæ®éã®äººãã®æŠå¿µã§ã®é³ã®åæ§ã®çœ®æ-å®éã«ã¯ãããã¯ã©ãã³èªãè±èªããã©ã³ã¹èªããã€ãèªããããŠæã«ã¯ã¹ãã€ã³èªã®é³å£°åŠã®æ··åç©ã§ãã
ãã¡ãããäžèšã¯å®å šã«èŠä»¶ã§ã¯ãªãïŒæåã®2ã€ãé€ãïŒãããããã¥ãŒãªã¹ãã£ãã¯ã§ãã
ããªã«æåããã©ãã³æåãžã®å€ãã®æ¢è£œã®é³èš³ããªã¢ã³ããèŠã€ããããšãã§ããŸãã ãããããã¹ãŠã®èŠä»¶ã蚱容ã§ããçšåºŠã«æºãããã®ã¯äœãèŠã€ãããŸããã§ããã ããã¯æšæºãšããŠçºé³åºå¥èšå·ã䜿çšããæã«ã¯æåãæšãŠïŒéåžžã¯ãbãïŒãäžå¯éïŒw-> shchïŒãŸãã¯é³å£°åŠçã«ã¯ã€ã«ãïŒw-> wïŒã®çœ®æãªãã·ã§ã³ãæäŸãããããã®ä»ã®èŽåœçãªæ¬ é¥ããããŸãã
èªè»¢è»ãäœããŸãã å®éã«ã¯ã察å¿è¡šãäœæããå€æã¢ã«ãŽãªãºã ãååŸã«èšè¿°ããå¿ èŠããããŸãã
ããŒãã«
ãã¹ãŠã®æçœãª1æåã®çœ®æããå§ããŸãããã
A | B | 㧠| G | D | E | ã | F | 3 | ãã㊠| Th | ã« | L | M | N | ãã | P | P | ãš | T | 㧠| F | X | Ts | H | W | ãã | B | S | B | E | ãã | ç§ã¯ |
A | B | V | G | D | E | Z | ç§ã¯ | K | L | M | N | O | P | R | S | T | ãã | F |
å¯èœãªéãçã眮æã®èŠä»¶ã«çæãããCãã«ãSãã䜿çšãããããæ確ãªè¯å¿ãæã£ãŠãCããšããèšå·ã䜿çšããŸãã
æ®ãã®æåã«ã€ããŠã¯ãäŒçµ±ïŒããã³åã«ã©ãã³æåã®æ¬ åŠïŒãã2æåã®çµã¿åããã䜿çšããããã«æ瀺ãããŸãã çŽæ¥å€æãç¹ã«éå€æãåçŽåããããã«ãçµã¿åãããçµã¿åããã®å€éšã§äœ¿çšãããªãã·ã³ãã«ã圢æããå Žåã¯äŸ¿å©ã§ãã Fanoã®æ¡ä»¶ã«ããã°ããã®ãããªç¹æ®æåã¯çµã¿åããã®æåã«ããã¹ãã§ãããäŒçµ±ã匷ããããããçµå±ã¯çµã¿åããã®æåŸã«ãHããšããæåãæžããŸãã ãã ãããHãèšå·ãåå¥ã«äœ¿çšãããå€æã¢ã«ãŽãªãºã ãåã®å ¥åèšå·ã«ãæ»ããïŒå®éã«ã¯èŠããŠããïŒããšãèš±å¯ãããŠããå ŽåãåŸçœ®ã®çµã¿åããã§ã¯ãFanoæ¡ä»¶ã®ãå転ãã¢ããã°ãæºããããŠãããšèŠãªãããšãã§ããŸãã ã€ãŸããã¢ã«ãŽãªãºã ã¯ããããäžæã«æ±ºå®ã§ããŸãã
åé³ã®ç¹å¥ãªèšå·ã¯ã©ãã§ãåãã§ã-ãHãã æ¯é³ã«ã¯ããYããšãJãã®2ã€ã®ãªãã·ã§ã³ããããŸãã ãYãã¯ãã芪ãã¿ããããã®ã§ããããYããŸãã¯ãYãã®ããã«åç¬ã§äœ¿çšãããããšããããããŸãã ãããŠããJãã¯çŽç²ã«è£å©çãªã·ã³ãã«ãšããŠèªèãããŸãã
解決æžã¿ãæ¯é³ãJãã«äœ¿çšã ã¡ãªã¿ã«ã解æŸããããYãã¯ãYãã«äœ¿çšãããŸãã
ãJãã¯ç¹æ®æåã§ããããããZhãã«ã¯äœ¿çšã§ããããZHãã®ã¿ãæ®ããŸãã åæ§ã«ããXãã®å ŽåããHãã¯äœ¿çšã§ããããKHãã®ã¿ãæ®ããŸãã
ããã§ãå ±éã®éžæãããçµã¿åãããšåäžæåãèšé²ã§ããŸãã
A | B | 㧠| G | D | E | ã | F | 3 | ãã㊠| Th | ã« | L | M | N | ãã | P | P | ãš | T | 㧠| F | X | Ts | H | W | ãã | B | S | B | E | ãã | ç§ã¯ |
A | B | V | G | D | E | Zh | Z | ç§ã¯ | Y | K | L | M | N | O | P | R | S | T | ãã | F | Kh | C | CH | SH | ã㌠| ãžã¥ | ãã |
åºç¯ã§åªããïŒç§ãã¡ã®èŠä»¶ã®æå³ã§ã®ïŒçœ®æã¯ããã«ãããç§ãã¡ã¯ãã®ã£ã°ããé¡æšã劥åã®äžå®å®ãªå°é¢ã«çæããŠããŸãã
sããå§ããŸãããã ãYãã¯ãã§ã«äœ¿çšãããŠããŸãïŒå¯éæ§ãæãåºããŠãã ããïŒãé³å£°çã«ã¯ããã¯æªã代çšââã§ãã ãEãã®è§£æ±ºçãèŠãŠã¿ãŸãããïŒã¡ãªã¿ã«ãISO / R 9ã1968ããïŒã é¡æšã«ããããSãã¯ãIHãã«çœ®ãæããããŸãã ãã®ãããªãªãã·ã§ã³ãã©ãã«ãåºäŒã£ãŠããªãã®ã¯å¥åŠã§ãã
ã§ã¯ãç¶æ³ãå¥åŠã§ãã æ確ãªãªãã·ã§ã³ããããŸãããç§ãã¡ã«ã¯é©ããŠããŸãã "E"ãªãã·ã§ã³ã ãŸãããJOãã®é³å£°ããŒãžã§ã³ããããŸãã ãããããã·ã¢èªã®ã¢ã«ãã¡ãããã§ã¯ããEãã¯ãOãã§ã¯ãªããEãã«åºã¥ããŠèª€ã£ãŠäœæãããŠããŸããã ããã¯ãEããšé »ç¹ã«äº€äºã«ãªããŸãïŒäŸïŒãcln-cl e newãïŒããOããšã¯æ±ºããŠäº€äºã«ãªããŸããã ããã¯å¥ã®çºèŠçææ³ã§ããããšãããããŸã-ãã¢ã«ãã¡ãããé ãïŒé³å£°ã§ã¯ãªããã°ã©ãã£ãã¯ã§ã¯ãªãïŒæåã®è¿æ¥ã ãã®çµæãããã®ä»£ããã«ãJEããäœæããŸãã
äžæåæ¢ããŸãããïŒ
A | B | 㧠| G | D | E | ã | F | 3 | ãã㊠| Th | ã« | L | M | N | ãã | P | P | ãš | T | 㧠| F | X | Ts | H | W | ãã | B | S | B | E | ãã | ç§ã¯ |
A | B | V | G | D | E | ãžã§ | Zh | Z | ç§ã¯ | Y | K | L | M | N | O | P | R | S | T | ãã | F | Kh | C | CH | SH | ãã | ã㌠| ãžã¥ | ãã |
ããã§åæ¢ããåé¡ãæåã®è¿äŒŒãŸã§è§£æ±ºããããšèšãã®ã¯ã©ãã»ã©è¯ãããšã§ãããã ãããããã3ã€ã®æçŽããããŸããã æ®ãã®æåã«ã¯é©åãªãªãã·ã§ã³ããããŸããã èšå·ã¯éåžžãã¢ãã¹ãããã£ã«çœ®ãæããããæåã®çœ®æã¯åçŽã«ä»»æã§ãããããbã->ãqããªã©ã®ãæ©ç¥ã«å¯ãã ããã®ã§ãã ããã®å Žåãçºé³åºå¥ç¬Šå·ã®ãªã眮æã®é·ãã¯éåžž3ã4æåã§ãããäŸç¶ãšããŠåé¡ããããŸãã
ãã調ã¹ãŠèŠåŽããåŸãç§ã¯ãã®æšè«ã«ãã ããå¿ èŠããããŸãããé³ã«å¯Ÿå¿ããªãæåã«ã€ããŠã¯ãé³ã®ããæåã¯äœ¿çšã§ããŸããã ãããŠãçµã¿åããã圢æããããã®ãç¹å¥ãªãèšå·ã ããæ®ã£ãŠããŸãã ããããFanoã®æ¡ä»¶ã«ãããããããåå¥ã«äœ¿çšããããšã¯ã§ãããçµã¿åããã¯ãããŸãã«ãªããŸãã
解決çã¯ãç¹æ®æåãäºãã«çµã¿åãããŠäœ¿çšââããããšã§ãã ããã¯ãæããã«ãå€æã¢ã«ãŽãªãºã ãããå°ãè€éã«ããŸãããäžææ§ãç¶æããããšã¯å¯èœã ãšæãããŸãã
åºäœèšå·ïŒåå²èšå·ã®ã¿ïŒã®å ŽåãçŽæçã«ãHHãã眮ãæããã®ãé©åãšæãããŸãïŒäžæåæ¢ãåé¢ã®ããã«èªãããšãã§ããŸããïŒã
ã¢ãœã·ãšãŒã·ã§ã³ãã§ãŒã³ã®ãœãããµã€ã³ïŒ "J"->çºå£°ãããæ¯é³->åã®åé³ã®ãœããåïŒ+ïŒ "H"->åé¢ïŒã¯ã "JH"ã®çœ®æã«ã€ãªãããŸãã
ããªãã¯ãããçŸãã解決çãšåŒã¶ããšã¯ã§ããŸããããè ã£ããªã³ãŽã®äžã§ã¯éžæè¢ã¯å€§ãããããŸããã
æ®å¿µãªããããã®ãããªéžæã«ããã眮æãã->ãSHHãã䜿çšã§ããªããªããŸãã ã·ãŒã±ã³ã¹ãSHHãã¯ãSããæå³ãããã®ãããªçµã¿åããã¯ãã·ã¢èªã§èŠãããŸãïŒããšãã°ããcongressãïŒã ç¹°ãè¿ããŸãããããããªè§£æ±ºçã¯ãããŸãããå°ãªããšãããæ°ãããããã«èŠããå¿ èŠããããŸãã é³ããã¯ãœããåãããããã«è¿ãããœããèšå·ãšã®é¡æšã«ãããããã¯æ¥é èŸãJãã§è¡šãããšãã§ããŸãã ç§ã¯ä»ãèªåèªèº«ã«ã€ããŠèšåããŠããããšãã³ãŒãã¯ãŸã é·ããæšæºã§ã¯ãªãããšãç解ããŠããŸãã ãããã圌ããèšãããã«ããç§ãã¡ã«ã¯ããªãã®ããã«ä»ã®äœå®¶ãããŸããã
ãã®çµæïŒ
A | B | 㧠| G | D | E | ã | F | 3 | ãã㊠| Th | ã« | L | M | N | ãã | P | P | ãš | T | 㧠| F | X | Ts | H | W | ãã | B | S | B | E | ãã | ç§ã¯ |
A | B | V | G | D | E | ãžã§ | Zh | Z | ç§ã¯ | Y | K | L | M | N | O | P | R | S | T | ãã | F | Kh | C | CH | SH | Jsh | ãã | ãã | Jh | ã㌠| ãžã¥ | ãã |
ã¢ã«ãŽãªãºã
ããªã«æåããã©ãã³æåãžã®å€æã¯ç°¡åã§ãã ç°¡æœã«ããããã«ã¬ãžã¹ã¿ã«æ³šæãæããŸããã
Javaã³ãŒã
public class Translit { public static String cyr2lat(char ch){ switch (ch){ case '': return "A"; case '': return "B"; case '': return "V"; case '': return "G"; case '': return "D"; case '': return "E"; case '': return "JE"; 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 "JSH"; case '': return "HH"; case '': return "IH"; case '': return "JH"; case '': return "EH"; case '': return "JU"; case '': return "JA"; default: return String.valueOf(ch); } } public static String cyr2lat(String s){ StringBuilder sb = new StringBuilder(s.length()*2); for(char ch: s.toCharArray()){ sb.append(cyr2lat(ch)); } return sb.toString(); } }
çµæã®äŸãšããŠãæ¢ç¥ã®ãã³ã°ã©ã ã®ãã¢ïŒ
Shirokaja ehlektrifikacija juzhnihkh guberniy dast mojshnihy tolchok podhhjemu seljhskogo khozjaystvaã
Shheshjh zhe ejshje ehtikh mjagkikh francuzskikh bulok da vihpey chajuã
èŠãç®ã¯ããŸããããããŸããããé³èš³ã®ãã®ãªãã·ã§ã³ã®äž»ãªç®çã¯ãŸã ãã«ããŒã ã§ãïŒ
ã¢ã¬ã¯ãµã³ãã«ã»ã€ã¯ããããã»ã¬ããž
ã²ãªã«ã®ãŒã»ã³ã³ã¹ã¿ã³ãã£ããŽã£ããã»Zã»ãã³ã
éå€æã®æ¹ãã¯ããã«èå³æ·±ãã§ãã ç¹ã«ããã€ã³ã¶ãã€ã³ãããå®è¡ããããã«ïŒITéšéããã§ã¯ãªãïŒäººã«èª¬æããã®ãè¯ããšèããŠããŸãã
ã©ããããç¹å¥ãªå Žåããå§ããå¿ èŠããããŸãã
- å·Šããå³ã«èªããšãæåã«æ³šæããã®ã¯èšå·ãJãã§ãã ãEãããHãããUãããAããŸãã¯ãSãïŒãã®å ŽåãSãã®å Žåã¯ãHããååšããå¿ èŠããããŸãïŒã®5æåã®ãããããç¶ãå¿ èŠããããŸãã 2ã3æåã®çµã¿åããã®è¡šã«ãããã®ã
- ãJãããªãå Žåã¯ãæåãHããæåã®åŸã«ç¶ããã©ããã確èªããŸãã ããã§æã泚æãå¿ èŠãªç¬éããããŸãããã®å Žåã 3çªç®ã®æåãåã³ãHãïŒããã¯ã³ãŒããHHãïŒã«ãªã£ããšãã«ãªãã·ã§ã³ãèœã¡ãŠã¯ãããŸãã ã ã€ãŸãã3ã€ã®æåãé£ç¶ããŠè¡šç€ºããŠåæããå¿ èŠããããŸãã ããã§Fanoã®æ¡ä»¶ã®éåãçºçããŸããïŒããããã€ãŠïŒã
- èšå·ã®è¿ãã«ãJããåäžã®ãHããèŠã€ãããªãã£ãå Žåã¯ãå¥ã®æåãšããŠè¡šã§èªç±ã«çœ®ãæããŠãã ããã
å®è·µã瀺ãããã«ãçããã¬ãŒãã³ã°ã»ãã·ã§ã³ã®åŸã人ã ã¯æåã§éå€æãå®è¡ã§ããŸãã ããããåœç¶ãç¹å¥ãªå¿ èŠãªãã«ããã匷å¶ããããšã¯å¿ èŠãããŸããã èªååããããšãã§ããŸãïŒç°¡åã«ãããããæååãšå€§æåã®ã¿ïŒïŒ
Javaã³ãŒã
public static String lat2cyr(String s){ StringBuilder sb = new StringBuilder(s.length()); int i = 0; while(i < s.length()){// . , char ch = s.charAt(i); if(ch == 'J'){ // i++; // ch = s.charAt(i); switch (ch){ case 'E': sb.append( ''); break; case 'S': sb.append( ''); i++; // if(s.charAt(i) != 'H') throw new IllegalArgumentException("Illegal transliterated symbol at position "+i);// break; case 'H': sb.append( ''); break; case 'U': sb.append( ''); break; case 'A': sb.append( ''); break; default: throw new IllegalArgumentException("Illegal transliterated symbol at position "+i); } }else if(i+1 < s.length() && s.charAt(i+1)=='H' && !(i+2 < s.length() && s.charAt(i+2)=='H')){// , . . switch (ch){ case 'Z': sb.append( ''); break; case 'K': sb.append( ''); break; case 'C': sb.append( ''); break; case 'S': sb.append( ''); break; case 'E': sb.append( ''); break; case 'H': sb.append( ''); break; case 'I': sb.append( ''); break; default: throw new IllegalArgumentException("Illegal transliterated symbol at position "+i); } i++; // }else{// switch (ch){ case 'A': sb.append( ''); break; case 'B': sb.append( ''); break; case 'V': sb.append( ''); break; case 'G': sb.append( ''); break; case 'D': sb.append( ''); break; case 'E': sb.append( ''); break; case 'Z': sb.append( ''); break; case 'I': sb.append( ''); break; case 'Y': sb.append( ''); break; case 'K': sb.append( ''); break; case 'L': sb.append( ''); break; case 'M': sb.append( ''); break; case 'N': sb.append( ''); break; case 'O': sb.append( ''); break; case 'P': sb.append( ''); break; case 'R': sb.append( ''); break; case 'S': sb.append( ''); break; case 'T': sb.append( ''); break; case 'U': sb.append( ''); break; case 'F': sb.append( ''); break; case 'C': sb.append( ''); break; default: sb.append(ch); } } i++; // } return sb.toString(); }
ãŸãšã
åçŽã§é·ãé解決ãããåé¡ã®ããã«æããŸãããåµé æ§ãšè°è«ã®ç¯å²ã§ãã
çå£ã«ããã·ã¢èªã®ããªã«æåã®ãã¹ãŠã®æåãã©ãã³æåã«å¯éçã«é³èš³ããããã®å®çšçãªã¢ã«ãŽãªãºã ãåŸãŸããã ããã«ãèŠä»¶ã®å³æ Œããå²ãåŒããçµæã¯ãèªãã®ã«èš±å®¹ã§ããŸãã ããã䜿çšããŠãã¬ã¬ã·ãŒã·ã¹ãã ããã³ã©ã€ãã©ãªãšçµ±åããèå¥åãçæã§ããŸãã
誰ãããã®ãœãªã¥ãŒã·ã§ã³ãæçšã§ããããããžã®éãèŠã€ããŠãããããšãé¡ã£ãŠããŸãã
è¿œå
ã³ã¡ã³ãã®è°è«ã«åºã¥ããŸãã ããçãããã圢åŒçã§ãªããã°ãªããŸããã
åãæ¶ãå¯èœãªèŠä»¶ã¯ãããŸãã ã
- æåå€æã®çµæãã¡ã€ã³ã®ã©ãã³ã¢ã«ãã¡ãããã®æåã®ã¿ãååŸããå¿
èŠããããŸã ïŒ26åãããŸãïŒabcdefghijklmnopqrstuvwxyz
- æåå€æã¯å®å šã«å¯éçã§ããå¿ èŠããããŸãã
æšæºããããŸãã èŠä»¶ãæºãããŠãããã®ã¯ãããŸããã
èŠä»¶ãæºããããã«ã®ã¿ ã1ã€ã®æšæºãéžæããæå°éã«å€æŽããå¿ èŠããããŸãã
å€æŽã¯ãã§ãŒã³ã«ãã£ãŠäžæã«èå¥ãããŸãã çµæãæ°ã«å ¥ããªãå Žåã¯ããã§ãŒã³ã®ã©ã®ãã€ã³ãããåæããªãããæžããŠãã ããã
ãœãªã¥ãŒã·ã§ã³ãå°ãçè«çã«æ£åœåããããã«ã
æåå€æ -ããæç« ã®å
åãå¥ã®æç« ã®å
åã«ãã£ãŠæ£ç¢ºã«äŒéãããããšã
é³å£°è¡šèšãšæ··åããªãã§ãã ãã-é³ã®äŒéã¯å¥šå±ãããŸãããä¿èšŒãããŸããã
æãäœãåªå é äœã¯ãæåã®ã°ã©ãã£ãã¯ã®é¡äŒŒæ§ã«äžããããŸãã ããšãã°ãæåhaãXãšããŠéä¿¡ããããšã¯ãé³å£°çã«ã¯åãå ¥ããããŸããã
æåå€æã¯ããœãŒã¹ã¢ã«ãã¡ãããã®æåããã¿ãŒã²ããã¢ã«ãã¡ãããã®æåããã®å¯å€é·ã³ãŒãã§ãšã³ã³ãŒããããšèŠãªãããšãã§ããŸãã ã³ãŒãã¯æ¬¡ã®ãšããã§ãã
æ¥é èŸãšæ¥å°ŸèŸã®é·ãã¯ç°ãªã£ãŠããŠãããŸããŸããããçãã»ã©è¯ãã§ãã ãããŠãã¡ãããç°ãªããã¬ãã£ãã¯ã¹ãšãã¹ããã£ãã¯ã¹ãæããªãæ¹ãããã§ãããã
ããªã«æåãšã©ãã³èªã®å Žåãäž¡æ¹ãšã1æåã§ã1ã€ã®æ¥é èŸãš1ã€ã®æ¥å°ŸèŸã«å¶éããããšãã§ããŸãã
ã³ãŒãã®ãç°¡åãªå¯éæ§ãã®ããã«ã次ã®æ¡ä»¶ãå°å ¥ããŸãã
ããã¯ã ãã¬ãã£ãã¯ã¹ã³ãŒãã®ç§ã®äžè¬åã§ã ã
ãã®ãããªæ¡ä»¶äžã§ã¯ãçµæã®ã·ãŒã±ã³ã¹ã®ã©ã®ãã©ã°ã¡ã³ãã«ãé·ããåœã®ã³ãŒããã¯ååšããªããšäž»åŒµã§ããŸãã ã€ãŸããæ¥é èŸãŸãã¯æ¥å°ŸèŸãåãæšãŠãããšãã§ããæ®ãã®åºæ¬æåãåäžã®åºæ¬æåãšäžèŽããããšã¯æããã§ãã
ããã¯é¿ããããªããããèŠããŠããå¿ èŠããããŸãã ããããè€å幎ã®äžéšãé£æ¥ããåäžã®æåãšäžç·ã«èšç»å€ã®è€åã³ãŒããšèŠãªãããããšã¯ãããŸããã
ããšãã°ãã³ãŒããSããã³ãŒããSHããããã³ã³ãŒããHHãã䜿çšããŠã¿ãŸãããïŒæ¡ä»¶ã«éåããæ¥å°ŸèŸã§å§ãŸããŸãïŒã 次ã«ãã·ãŒã±ã³ã¹ãSHHãïŒ3çªç®ãš1çªç®ã®ã³ãŒãïŒã§ããã©ã°ã¡ã³ããSHãïŒ2çªç®ã®ã³ãŒãã«å¯Ÿå¿ïŒãéžæã§ããŸãã
ãã¬ãã£ãã¯ã¹ã®å Žåããç°¡åãªå¯éæ§ãæ¡ä»¶ã®éåã¯ããã»ã©äžå¿«ã§ã¯ãããŸããïŒéãã¯ãåæãå·Šããå³ã«é²ãããã§ãïŒã ããããããã¯ãŸãããç®ã§ãç¥èŠããããšãé£ããããŸã-倧ãŸããªã¹ãã£ã³äžãç§ãã¡ã¯åèªãé£ç¶çã§ã¯ãªãå šäœãèªã¿ãã©ã³ãã ãªçµã¿åãããããã£ãããã§ããŸãã
å°å ¥ãããæ¡ä»¶ã®ç¹å®ã®çµæã¯ããã¬ãã£ãã¯ã¹ãŸãã¯ãã¹ããã£ãã¯ã¹ãåäžæåãšããŠäœ¿çšããããšã®çŠæ¢ã§ãã
ããªã«æåããã³ã©ãã³èªã®å Žåãæ¥å°ŸèŸã«ã¯ãHããªãã·ã§ã³ã¯ãããŸããã
ãã¬ãã£ãã¯ã¹ã¯ãYããŸãã¯ãJãã§ãã æ¥é èŸãYãã䜿çšãããŠããå ŽåããYããŸãã¯ãSããäŒããããã«äœ¿çšããããšã¯ã§ããŸããã ã€ãŸãã2æåïŒããã³ã»ãã¯éåžžã«äžè¬çïŒã®å Žåãéæšæºãé³å£°åŠããã¯çšé ãããããŠããããã¯é·ãã³ãŒããèãåºãå¿ èŠããããŸãã
ãJãã«åé¡ã¯ãããŸããã ãã®ã·ã³ãã«ãåå¥ã«äœ¿çšããããããŸããã§ããã
é³å£°è¡šèšãšæ··åããªãã§ãã ãã-é³ã®äŒéã¯å¥šå±ãããŸãããä¿èšŒãããŸããã
æãäœãåªå é äœã¯ãæåã®ã°ã©ãã£ãã¯ã®é¡äŒŒæ§ã«äžããããŸãã ããšãã°ãæåhaãXãšããŠéä¿¡ããããšã¯ãé³å£°çã«ã¯åãå ¥ããããŸããã
æåå€æã¯ããœãŒã¹ã¢ã«ãã¡ãããã®æåããã¿ãŒã²ããã¢ã«ãã¡ãããã®æåããã®å¯å€é·ã³ãŒãã§ãšã³ã³ãŒããããšèŠãªãããšãã§ããŸãã ã³ãŒãã¯æ¬¡ã®ãšããã§ãã
- äžæå
- ãã¬ãã£ãã¯ã¹ãšæ¬¡ã®åºæ¬æå
- ç¹å®ã®æ¥å°ŸèŸãç¶ãåºæ¬æå
- ãã¬ãã£ãã¯ã¹ãšãã¹ããã£ãã¯ã¹ã®äž¡æ¹ãæã€åºæ¬æå
æ¥é èŸãšæ¥å°ŸèŸã®é·ãã¯ç°ãªã£ãŠããŠãããŸããŸããããçãã»ã©è¯ãã§ãã ãããŠãã¡ãããç°ãªããã¬ãã£ãã¯ã¹ãšãã¹ããã£ãã¯ã¹ãæããªãæ¹ãããã§ãããã
ããªã«æåãšã©ãã³èªã®å Žåãäž¡æ¹ãšã1æåã§ã1ã€ã®æ¥é èŸãš1ã€ã®æ¥å°ŸèŸã«å¶éããããšãã§ããŸãã
ã³ãŒãã®ãç°¡åãªå¯éæ§ãã®ããã«ã次ã®æ¡ä»¶ãå°å ¥ããŸãã
æ¥å°ŸèŸã§å§ãŸãã³ãŒããæ¥é èŸã§çµããã³ãŒãã¯ãããŸããã
ããã¯ã ãã¬ãã£ãã¯ã¹ã³ãŒãã®ç§ã®äžè¬åã§ã ã
ãã®ãããªæ¡ä»¶äžã§ã¯ãçµæã®ã·ãŒã±ã³ã¹ã®ã©ã®ãã©ã°ã¡ã³ãã«ãé·ããåœã®ã³ãŒããã¯ååšããªããšäž»åŒµã§ããŸãã ã€ãŸããæ¥é èŸãŸãã¯æ¥å°ŸèŸãåãæšãŠãããšãã§ããæ®ãã®åºæ¬æåãåäžã®åºæ¬æåãšäžèŽããããšã¯æããã§ãã
ããã¯é¿ããããªããããèŠããŠããå¿ èŠããããŸãã ããããè€å幎ã®äžéšãé£æ¥ããåäžã®æåãšäžç·ã«èšç»å€ã®è€åã³ãŒããšèŠãªãããããšã¯ãããŸããã
ããšãã°ãã³ãŒããSããã³ãŒããSHããããã³ã³ãŒããHHãã䜿çšããŠã¿ãŸãããïŒæ¡ä»¶ã«éåããæ¥å°ŸèŸã§å§ãŸããŸãïŒã 次ã«ãã·ãŒã±ã³ã¹ãSHHãïŒ3çªç®ãš1çªç®ã®ã³ãŒãïŒã§ããã©ã°ã¡ã³ããSHãïŒ2çªç®ã®ã³ãŒãã«å¯Ÿå¿ïŒãéžæã§ããŸãã
ãã¬ãã£ãã¯ã¹ã®å Žåããç°¡åãªå¯éæ§ãæ¡ä»¶ã®éåã¯ããã»ã©äžå¿«ã§ã¯ãããŸããïŒéãã¯ãåæãå·Šããå³ã«é²ãããã§ãïŒã ããããããã¯ãŸãããç®ã§ãç¥èŠããããšãé£ããããŸã-倧ãŸããªã¹ãã£ã³äžãç§ãã¡ã¯åèªãé£ç¶çã§ã¯ãªãå šäœãèªã¿ãã©ã³ãã ãªçµã¿åãããããã£ãããã§ããŸãã
å°å ¥ãããæ¡ä»¶ã®ç¹å®ã®çµæã¯ããã¬ãã£ãã¯ã¹ãŸãã¯ãã¹ããã£ãã¯ã¹ãåäžæåãšããŠäœ¿çšããããšã®çŠæ¢ã§ãã
ããªã«æåããã³ã©ãã³èªã®å Žåãæ¥å°ŸèŸã«ã¯ãHããªãã·ã§ã³ã¯ãããŸããã
ãã¬ãã£ãã¯ã¹ã¯ãYããŸãã¯ãJãã§ãã æ¥é èŸãYãã䜿çšãããŠããå ŽåããYããŸãã¯ãSããäŒããããã«äœ¿çšããããšã¯ã§ããŸããã ã€ãŸãã2æåïŒããã³ã»ãã¯éåžžã«äžè¬çïŒã®å Žåãéæšæºãé³å£°åŠããã¯çšé ãããããŠããããã¯é·ãã³ãŒããèãåºãå¿ èŠããããŸãã
ãJãã«åé¡ã¯ãããŸããã ãã®ã·ã³ãã«ãåå¥ã«äœ¿çšããããããŸããã§ããã
I.éå§æšæºãéžæããŸãã
ãã¡ãããæãé³å£°çã«æ£ããã®ã¯BGNã§ãã ããããBGNã¯åºæ¬çã«ïŒæ æã§ãã£ãŠãïŒãªããŒã·ãã«ã§ã¯ãããŸããã
ç§ã®æèŠã§ã¯ãåºæ¬çãªã©ãã³ã¢ã«ãã¡ããããšå¯éæ§ã«æãè¿ãã®ã¯ãGOST 16876-71 /è¡š2ãã§ããããããéžæããŸãã
...ïŒ
GOST 7.79-2000 / System BãçŸåšé¢é£ããŠããªãçç±ãå°ããŸãã äž»ã«ãXã->ãXãããã³ãYã->ãJãã ããŠãä»æ¥ã¯é¢é£æ§ããããææ¥ã¯åã®GOSTãšåãã§ãã
A | B | 㧠| G | D | E | ã | F | 3 | ãã㊠| Th | ã« | L | M | N | ãã | P | P | ãš | T | 㧠| F | X | Ts | H | W | ãã | B | S | B | E | ãã | ç§ã¯ |
A | B | V | G | D | E | ãžã§ãŒ | Zh | Z | ç§ã¯ | Jj | K | L | M | N | O | P | R | S | T | ãã | F | Kh | C | CH | SH | SHH | â³ | Y | â² | ã㌠| ãžã¥ | ãã |
ãã®ã¹ããŒã ã¯ãç§ãã¡ã®èŠä»¶ã®ç¹ã§ã¯å®å šã§ã¯ãããŸããã å€æŽããå¿ èŠããããŸãã
IIã æåã«ç®ãåŒãã®ã¯ãJJãã§ãã ãªããããæªãã®ãããçè«çãªããã¿ãã¬ã§èŠãããšãã§ããŸãã ãç解ã§ããªãç¶æ³ã§ã¯ãBGNãèŠãŠãã ããããšããã«ãŒã«ã«åŸããŸãã ã€ãŸãããYã->ãYãã§ãã
IIIã ä»ãç§ã¯ã³ãŒããYããªãã§æ®ãããŸããã BGNã¯åœ¹ã«ç«ã¡ãŸããã ãã¢ãI-YããšãE-Eãã«ã¯é³å£°ã®ã¢ãããžãŒããããŸãã æåãEãã®ã³ãŒããååŸããããã«ãèŠæ Œã¯ã³ãŒããEãã«åŸçœ®èšå·ãè¿œå ããŸãã ãSã->ãIHããå®è¡ããŸãã
IVã ãbããšãbãã®ä»£ããã«éæå眮æããããŸããã é³å£°åŠãç Žå£ããªãããã«ããã¬ãã£ãã¯ã¹ãšãã¹ããã£ãã¯ã¹ã®ã¿ã䜿çšã§ããŸãã
V.ïŒçè«äžã®ïŒãã¿ãã¬ã§ã¯ãæ¥é èŸãšçµã¿åãããŠïŒå°ãªããšãïŒããŒã¹ã·ã³ãã«ãšããŠæ¥å°ŸèŸã䜿çšããããšãçŠããªãããšã«æ³šæããŠãã ããã ã€ãŸãããJHãããJHHãããJJHããšããã³ãŒãããããŸãã
VIã ãã®å¯ãåé ããããšã¯æ®ã£ãŠããŸãã å€ãã®å Žåããbãã¯æçã³ãŒãã§ãïŒãbã->ãjhãã
VIIã Kommersantã«ã¯é³ããããŸãããHã¯èªã¿äžãæã«å£°ãåºããªãæ¹ãç°¡åã§ãã ãããã£ãŠããHããããå€ãæ®ãã®ã³ãŒãããéžæããŸãïŒãbã->ãJHHãã
ããã¯å€æããïŒ
A | B | 㧠| G | D | E | ã | F | 3 | ãã㊠| Th | ã« | L | M | N | ãã | P | P | ãš | T | 㧠| F | X | Ts | H | W | ãã | B | S | B | E | ãã | ç§ã¯ |
A | B | V | G | D | E | ãžã§ãŒ | Zh | Z | ç§ã¯ | Y | K | L | M | N | O | P | R | S | T | ãã | F | Kh | C | CH | SH | SHH | Jhh | ãã | Jh | ã㌠| ãžã¥ | ãã |
ãSHHãã³ãŒãã¯ãé·ã2ã®æ¥å°ŸèŸã䜿çšããå¯äžã®ã³ãŒãã§ããããããã³ãŒãã®å šé·ã¯ããã3ã§ããŸããªæåã§ãã å¯éæ§ã¯äŸµå®³ãããŸããïŒãç°¡åãªå¯éæ§ããããïŒã
æšæºã§ä»ã®äœãã«è§Šããå¿ èŠã¯ãããŸããã
説æããJavaã³ãŒã
package tools; import static java.lang.Character.toUpperCase; /** * * Created by vladimir on 25.08.15. */ public class Translit { public static String lat2cyr(String s){ StringBuilder sb = new StringBuilder(s.length()); int i = 0; while(i < s.length()){// . , char ch = s.charAt(i); boolean lc = Character.isLowerCase(ch); // ch = toUpperCase(ch); if(ch == 'J'){ // i++; // ch = toUpperCase(s.charAt(i)); switch (ch){ case 'O': sb.append(ch('', lc)); break; case 'H': if(i+1 < s.length() && toUpperCase(s.charAt(i+1))=='H') { // ( JHH) sb.append(ch('', lc)); i++; // }else{ sb.append(ch('', lc)); } break; case 'U': sb.append(ch('', lc)); break; case 'A': sb.append(ch('', lc)); break; default: throw new IllegalArgumentException("Illegal transliterated symbol '"+ch+"' at position "+i); } }else if(i+1 < s.length() && toUpperCase(s.charAt(i+1))=='H' ){// , . . switch (ch){ case 'Z': sb.append(ch('', lc)); break; case 'K': sb.append(ch('', lc)); break; case 'C': sb.append(ch('', lc)); break; case 'S': if(i+2 < s.length() && toUpperCase(s.charAt(i+2))=='H') { // sb.append(ch('', lc)); i++; // }else{ sb.append(ch('', lc)); } break; case 'E': sb.append(ch('', lc)); break; case 'I': sb.append(ch('', lc)); break; default: throw new IllegalArgumentException("Illegal transliterated symbol '"+ch+"' at position "+i); } i++; // }else{// switch (ch){ case 'A': sb.append(ch('', lc)); break; case 'B': sb.append(ch('', lc)); break; case 'V': sb.append(ch('', lc)); break; case 'G': sb.append(ch('', lc)); break; case 'D': sb.append(ch('', lc)); break; case 'E': sb.append(ch('', lc)); break; case 'Z': sb.append(ch('', lc)); break; case 'I': sb.append(ch('', lc)); break; case 'Y': sb.append(ch('', lc)); break; case 'K': sb.append(ch('', lc)); break; case 'L': sb.append(ch('', lc)); break; case 'M': sb.append(ch('', lc)); break; case 'N': sb.append(ch('', lc)); break; case 'O': sb.append(ch('', lc)); break; case 'P': sb.append(ch('', lc)); break; case 'R': sb.append(ch('', lc)); break; case 'S': sb.append(ch('', lc)); break; case 'T': sb.append(ch('', lc)); break; case 'U': sb.append(ch('', lc)); break; case 'F': sb.append(ch('', lc)); break; case 'C': sb.append(ch('', lc)); break; default: sb.append(ch(ch, lc)); } } i++; // } return sb.toString(); } public static String cyr2lat(char 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 String.valueOf(ch); } } public static String cyr2lat(String s){ StringBuilder sb = new StringBuilder(s.length()*2); for(char ch: s.toCharArray()){ char upCh = toUpperCase(ch); String lat = cyr2lat(upCh); if(ch != upCh){ lat = lat.toLowerCase(); } sb.append(lat); } return sb.toString(); } /** * */ private static char ch(char ch, boolean toLowerCase){ return toLowerCase? Character.toLowerCase(ch): ch; } /** * */ public static void main(String[] args) { String s1 = cyr2lat(" "); String s2 = cyr2lat(" "); String s3 = cyr2lat(" "); String s4 = cyr2lat(" ."); String s5 = cyr2lat(" "); System.out.println(s1); System.out.println(s2); System.out.println(s3); System.out.println(s4); System.out.println(s5); System.out.println(); System.out.println(lat2cyr(s1)); System.out.println(lat2cyr(s2)); System.out.println(lat2cyr(s3)); System.out.println(lat2cyr(s4)); System.out.println(lat2cyr(s5)); } }
ã³ãŒãã¯ãå®éšããã³éå€æã¢ã«ãŽãªãºã ã®èŠèŠçãªèª¬æã®ããã«ã®ã¿æäŸãããŠããŸãã
å·¥æ¥çšã®é³èš³ã®ããŒãºã«ã¯ãé©åãªãœãªã¥ãŒã·ã§ã³ããããŸãïŒãã ããèŠä»¶1ããã³2ã«ã¯æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ã¯ãããŸããïŒã
æ¥çæšæºã®ãã¡ãé³èš³ã¯Unicode Common Locale Data Repository ProjectïŒCLDRïŒã®äžéšã§ãã
CLDRïŒ International Components for Unicodeãå«ãéåžžã«åŒ·åãªå®è£ ããããŸã ã
å ·äœçã«ã¯ãICUã®JavaããŒãžã§ã³ïŒ ICU4J ã
é³èš³ïŒããã³ãã®ä»ïŒãèšè¿°ããã³å®è¡ããããã®ãã¬ãŒã ã¯ãŒã¯ããããŸãã
ãã·ã¢èªããªã«æåã«ã€ããŠã¯ãæ¢è£œã®å®è£ ããããŸãïŒ
1. ISO 9.ãªããŒã·ãã«ããã ãçºé³åºå¥ç¬Šå·ä»ãã
2. BGNã åé³èšå·ã¯ãããŸããããå¥èªç¹ãšäžå¯éæ§ããããŸãã
GOSTãè¿œå ããããããŸããªèšç»ãããããŸãã
ãããç解ããããã®æéãšåŽåãããã°ãç§ã¯ãããè¡ããICU4Jã䜿çšããŠç§ã®ã¹ããŒã ã®å®è£ ãã¬ã€ã¢ãŠãããŸãã
CLDRïŒ International Components for Unicodeãå«ãéåžžã«åŒ·åãªå®è£ ããããŸã ã
å ·äœçã«ã¯ãICUã®JavaããŒãžã§ã³ïŒ ICU4J ã
é³èš³ïŒããã³ãã®ä»ïŒãèšè¿°ããã³å®è¡ããããã®ãã¬ãŒã ã¯ãŒã¯ããããŸãã
ãã·ã¢èªããªã«æåã«ã€ããŠã¯ãæ¢è£œã®å®è£ ããããŸãïŒ
1. ISO 9.ãªããŒã·ãã«ããã ãçºé³åºå¥ç¬Šå·ä»ãã
2. BGNã åé³èšå·ã¯ãããŸããããå¥èªç¹ãšäžå¯éæ§ããããŸãã
GOSTãè¿œå ããããããŸããªèšç»ãããããŸãã
ãããç解ããããã®æéãšåŽåãããã°ãç§ã¯ãããè¡ããICU4Jã䜿çšããŠç§ã®ã¹ããŒã ã®å®è£ ãã¬ã€ã¢ãŠãããŸãã
ã³ã¡ã³ãã®å»ºèšçãªæ¹å€ã®ãããã§ã決å®ã¯å€ãããŸããã åé¡ã«å¯Ÿããç§ã®ç解ãæ·±ãŸããŸããã ãã¢ãã«ããå®è£ ã«ã€ããŠèããŸãã
ã¿ããªããããšãïŒ Habrã¯ããè¯ãããšãããŸãã