1import { JA_BLOG_TEXT_TRANSLATIONS } from './ja-blog-translations.js'; 2import { JA_HOME_COMMON_TEXT_TRANSLATIONS } from './ja-home-common-translations.js'; 3import { JA_SOLUTION_CASE_TEXT_TRANSLATIONS } from './ja-solution-case-translations.js'; 4 5const JA_CORE_TEXT_TRANSLATIONS = { 6 é¦é¡µ: 'ãã¼ã ', 7 è§£å³æ¹æ¡: 'ã½ãªã¥ã¼ã·ã§ã³', 8 å®¢æ·æ¡ä¾: 'å°å ¥äºä¾', 9 卿: 'ãã¥ã¼ã¹', 10 å ³äº: 'ä¼ç¤¾æ å ±', 11 'å ³äº qKnow': 'qKnowã«ã¤ãã¦', 12 å ³äºqKnow: 'qKnowã«ã¤ãã¦', 13 ä»·æ ¼: 'æé', 14 ç®ä½ä¸æ: 'ç°¡ä½åä¸å½èª', 15 English: 'è±èª', 16 Japanese: 'æ¥æ¬èª', 17 æ¥æ¬èª: 'æ¥æ¬èª', 18 å è´¹è¯ç¨: 'ç¡æãã©ã¤ã¢ã«', 19 å 费使ç¨: 'ç¡æãã©ã¤ã¢ã«', 20 ç«å³å¨è¯¢: 'ä»ããç¸è«', 21 èç³»æä»¬: 'ãåãåãã', 22 åå¡åä½: 'äºæ¥ææº', 23 è·åèµæ: 'è³æãå ¥æ', 24 æ¥ç详æ : '詳細ãè¦ã', 25 'æ¥çæ´å¤ â': 'ãã£ã¨è¦ã â', 26 'æ¡ä¾è¯¦æ â': 'äºä¾ã®è©³ç´° â', 27 'é è¯»åæ â': 'åæãèªã â', 28 è¿åé¡¶é¨: 'ãã¼ã¸ä¸é¨ã¸æ»ã', 29 主导èª: 'ã¡ã¤ã³ããã²ã¼ã·ã§ã³', 30 ç§»å¨å¯¼èª: 'ã¢ãã¤ã«ããã²ã¼ã·ã§ã³', 31 è¯è¨åæ¢: 'è¨èªåãæ¿ã', 32 æå¼ç§»å¨ç«¯èå: 'ã¢ãã¤ã«ã¡ãã¥ã¼ãéã', 33 å ³éèå: 'ã¡ãã¥ã¼ãéãã', 34 卿åç±»: 'ãã¥ã¼ã¹ã«ãã´ãª', 35 æç´¢å¨æå 容: 'ãã¥ã¼ã¹ãæ¤ç´¢', 36 å页导èª: 'ãã¼ã¸ããã²ã¼ã·ã§ã³', 37 ææ°å¨æä¸æ´å¯: 'ææ°ãã¥ã¼ã¹ã¨ã¤ã³ãµã¤ã', 38 'æ±èæ ¸å¿äº§ååå¸ä¸æ·±åº¦ææ¯è§£æï¼ä¸æ¨å ±åæ¢ç´¢ä¼ä¸æ°æ®æ²»çä¸èµäº§åçæ¼è¿ä¹è·¯ã': 39 '主è¦ãªè£½åãªãªã¼ã¹ã¨è©³ããæè¡è§£èª¬ãéãã¦ã伿¥ã®ãã¬ãã¸æ´»ç¨ã¨AIå°å ¥ã®é²åãã¨ãã«æ¢ãã¾ãã', 40 å ¨é¨å¨æ: 'ãã¹ã¦ã®ãã¥ã¼ã¹', 41 产åå ¬å: '製åã®ãç¥ãã', 42 ææ¯å客: 'æè¡ããã°', 43 社åºå¨æ: 'ã³ãã¥ããã£ãã¥ã¼ã¹', 44 è¡ä¸æ´å¯: 'æ¥çã¤ã³ãµã¤ã', 45 ç鍿¨è: 'ããããè¨äº', 46 'æ°é»å¨æ ï½ qKnow æºè½ä½æå»ºå¹³å°': 47 'ãã¥ã¼ã¹ï½qKnow ã¨ã¼ã¸ã§ã³ãæ§ç¯ãã©ãããã©ã¼ã ', 48 'qKnow卿,qKnowæ°é»,æºè½ä½å¹³å°å¨æ,ç¥è¯å¾è°±èµè®¯,ç¥è¯åºRAGèµè®¯,ä¼ä¸AIèµè®¯,AIæºè½ä½è¡ä¸æ´å¯,大模ååºç¨èµè®¯,弿ºæºè½ä½é¡¹ç®,åæ¡ç§æå¨æ': 49 'qKnowãã¥ã¼ã¹,qKnowææ°æ å ±,ã¨ã¼ã¸ã§ã³ããã©ãããã©ã¼ã ,ãã¬ãã¸ã°ã©ã,RAGãã¬ãã¸ãã¼ã¹,伿¥AI,AIã¨ã¼ã¸ã§ã³ãæ¥çã¤ã³ãµã¤ã,å¤§è¦æ¨¡è¨èªã¢ãã«æ´»ç¨,ãªã¼ãã³ã½ã¼ã¹ã»ã¨ã¼ã¸ã§ã³ã,åæ¡ãã¯ããã¸ã¼', 50 'äºè§£ qKnow æºè½ä½æå»ºå¹³å°ç产ååå¸ãçæ¬æ´æ°ãææ¯å客ãè¡ä¸æ´å¯ä¸å¼æºç¤¾åºå¨æï¼æç»è·åç¥è¯å¾è°±ãç¥è¯åºRAGãAIæºè½ä½ä¸ä¼ä¸çº§å¤§æ¨¡ååºç¨çææ°å®è·µã': 51 'qKnow ã¨ã¼ã¸ã§ã³ãæ§ç¯ãã©ãããã©ã¼ã ã®è£½åãªãªã¼ã¹ããã¼ã¸ã§ã³æ´æ°ãæè¡ããã°ãæ¥çã¤ã³ãµã¤ãããªã¼ãã³ã½ã¼ã¹ã³ãã¥ããã£ã®ææ°æ å ±ãã覧ããã ãã¾ãããã¬ãã¸ã°ã©ããRAGãã¬ãã¸ãã¼ã¹ãAIã¨ã¼ã¸ã§ã³ãã伿¥åãå¤§è¦æ¨¡è¨èªã¢ãã«æ´»ç¨ã®ææ°äºä¾ãç¶ç¶çã«çºä¿¡ãã¾ãã', 52 é¦é¡µè½®æ: 'ãã¼ã ã«ã«ã¼ã»ã«', 53 èµè®¯å¨æ: 'ãã¥ã¼ã¹ã¨ãç¥ãã', 54 常è§é®é¢: 'ããããã質å', 55 '常è§é®é¢ï¼FAQï¼': 'ããããã質åï¼FAQï¼', 56 产åçæ: '製åã¨ã³ã·ã¹ãã ', 57 æ ¸å¿è½å: 'ä¸»è¦æ©è½', 58 æ ¸å¿è½åä½ç³»: 'ä¸»è¦æ©è½ä½ç³»', 59 产åå±ç¤º: '製åç´¹ä»', 60 æ¹æ¡ç¹è²: 'ã½ãªã¥ã¼ã·ã§ã³ã®ç¹é·', 61 æ¹æ¡æ¶æå¾: 'ã½ãªã¥ã¼ã·ã§ã³æ§æå³', 62 ä¸å¡çç¹: 'æ¥å課é¡', 63 æ ¸å¿æ¶ç: '主ãªå¹æ', 64 è£èªèµè´¨: 'èªè¨¼ã»åè³æ´', 65 æå¨è®¤è¯ä¸èµè´¨è书: 'èªè¨¼ã»è³æ ¼', 66 åæ¡ç§æ: 'åæ¡ãã¯ããã¸ã¼', 67 åæ¡ç§æå®ç½: 'åæ¡ãã¯ããã¸ã¼å ¬å¼ãµã¤ã', 68 qKnowæºè½ä½æå»ºå¹³å°: 'qKnow ã¨ã¼ã¸ã§ã³ãæ§ç¯ãã©ãããã©ã¼ã ', 69 'qKnow æºè½ä½æå»ºå¹³å°': 'qKnow ã¨ã¼ã¸ã§ã³ãæ§ç¯ãã©ãããã©ã¼ã ', 70 qDataæ°æ®ä¸å°: 'qData ãã¼ã¿åºç¤', 71 'qData æ°æ®ä¸å°': 'qData ãã¼ã¿åºç¤', 72 qAuthç»ä¸èº«ä»½è®¤è¯å¹³å°: 'qAuth çµ±åIDèªè¨¼ãã©ãããã©ã¼ã ', 73 qModelç®æ³æ¨¡åå¹³å°: 'qModel ã¢ã«ã´ãªãºã ã¢ãã«ãã©ãããã©ã¼ã ', 74 'Copyright ©2018-2026 qknow.tech All Rights Reserved qKnowçæææ': 75 'Copyright ©2018-2026 qknow.tech All Rights Reserved', 76 'Copyright ©2018-2026 qKnow.tech All Rights Reserved qKnowçæææ': 77 'Copyright ©2018-2026 qKnow.tech All Rights Reserved' 78}; 79 80const JA_TEXT_TRANSLATIONS = { 81 ...JA_CORE_TEXT_TRANSLATIONS, 82 ...JA_HOME_COMMON_TEXT_TRANSLATIONS, 83 ...JA_SOLUTION_CASE_TEXT_TRANSLATIONS, 84 ...JA_BLOG_TEXT_TRANSLATIONS, 85 // Keep the compact standalone edition label used by the pricing cards. 86 'ä¸ä¸ç': JA_HOME_COMMON_TEXT_TRANSLATIONS['ä¸ä¸ç'] 87}; 88 89const JA_TERM_REPLACEMENTS = [ 90 ['qKnowæºè½ä½æå»ºå¹³å°ä¸ä¸ç', 'qKnow ã¨ã¼ã¸ã§ã³ãæ§ç¯ãã©ãããã©ã¼ã ãããã§ãã·ã§ãã«ç'],
91 ['qKnowæºè½ä½æå»ºå¹³å°å¼æºç', 'qKnow ã¨ã¼ã¸ã§ã³ãæ§ç¯ãã©ãããã©ã¼ã ãªã¼ãã³ã½ã¼ã¹ç'], 92 ['qKnowæºè½ä½æå»ºå¹³å°', 'qKnow ã¨ã¼ã¸ã§ã³ãæ§ç¯ãã©ãããã©ã¼ã '], 93 ['qKnow æºè½ä½æå»ºå¹³å°', 'qKnow ã¨ã¼ã¸ã§ã³ãæ§ç¯ãã©ãããã©ã¼ã '], 94 ['ä¼ä¸çº§æºè½ä½æå»ºå¹³å°', '伿¥åãã¨ã¼ã¸ã§ã³ãæ§ç¯ãã©ãããã©ã¼ã '], 95 ['æºè½ä½æå»ºå¹³å°', 'ã¨ã¼ã¸ã§ã³ãæ§ç¯ãã©ãããã©ã¼ã '], 96 ['æ³µç«æ éè¯æä¸é¢æµæ§è¿ç»´', 'ãã³ãå ´ã®æ é診æã»äºç¥ä¿å ¨'], 97 ['æ³µç«æ éè¯æä¸é¢æµè¿ç»´', 'ãã³ãå ´ã®æ é診æã»äºç¥ä¿å ¨'], 98 ['æ³µç«æºè½è¿ç»´ä¸æ éè¯æ', 'ãã³ãå ´ã®ã¹ãã¼ãä¿å®ã»æ é診æ'], 99 ['ç¥è¯åºRAG', 'RAGãã¬ãã¸ãã¼ã¹'], 100 ['ç¥è¯åº RAG', 'RAGãã¬ãã¸ãã¼ã¹'], 101 ['ç¥è¯å¾è°±', 'ãã¬ãã¸ã°ã©ã'], 102 ['åéç¥è¯åº', 'ãã¯ãã«ãã¬ãã¸ãã¼ã¹'], 103 ['æºè½ä½åºç¨', 'ã¨ã¼ã¸ã§ã³ãã¢ããªã±ã¼ã·ã§ã³'], 104 ['æºè½ä½', 'ã¨ã¼ã¸ã§ã³ã'], 105 ['大模ååºç¨', 'å¤§è¦æ¨¡è¨èªã¢ãã«æ´»ç¨'], 106 ['大模å', 'å¤§è¦æ¨¡è¨èªã¢ãã«'], 107 ['ä¼ä¸çº§', 'ã¨ã³ã¿ã¼ãã©ã¤ãº'], 108 ['ä¸ä¸ç', 'ãããã§ãã·ã§ãã«ç'], 109 ['弿ºç', 'ãªã¼ãã³ã½ã¼ã¹ç'], 110 ['åä¸ç', 'åç¨ç'], 111 ['æµ·å¤ç', 'æµ·å¤ç'], 112 ['ç§æåé¨ç½²', 'ãã©ã¤ãã¼ãå°å ¥'], 113 ['æ¬å°åé¨ç½²', 'ãªã³ãã¬ãã¹å°å ¥'], 114 ['æºç ææ', 'ã½ã¼ã¹ã³ã¼ãã©ã¤ã»ã³ã¹'], 115 ['æºç 交ä»', 'ã½ã¼ã¹ã³ã¼ãæä¾'], 116 ['ç½çåå¼å', 'ãã¯ã¤ãããã¯ã¹éçº'], 117 ['å¯è§åç¼æ', 'ãã¸ã¥ã¢ã«ç·¨æ'], 118 ['ä½ä»£ç ', 'ãã¼ã³ã¼ã'], 119 ['é¶ä»£ç ', 'ãã¼ã³ã¼ã'], 120 ['工使µ', 'ã¯ã¼ã¯ããã¼'], 121 ['æä»¶ä¸å¿', 'ãã©ã°ã¤ã³ã»ã³ã¿ã¼'], 122 ['æä»¶å', 'ãã©ã°ã¤ã³å'], 123 ['ç¥è¯ä¸å°', 'ãã¬ãã¸åºç¤'], 124 ['ç¥è¯å¹³å°', 'ãã¬ãã¸ãã©ãããã©ã¼ã '], 125 ['ç¥è¯åº', 'ãã¬ãã¸ãã¼ã¹'], 126 ['ç¥è¯èå', 'ãã¬ãã¸çµ±å'], 127 ['ç¥è¯æ½å', 'ãã¬ãã¸æ½åº'], 128 ['ç¥è¯æ¨ç', 'ãã¬ãã¸æ¨è«'], 129 ['ç¥è¯é®ç', 'ãã¬ãã¸Q&A'], 130 ['ç¥è¯æ£ç´¢', 'ãã¬ãã¸æ¤ç´¢'], 131 ['ç¥è¯æ²»ç', 'ãã¬ãã¸ã¬ããã³ã¹'], 132 ['ç¥è¯ç®¡ç', 'ãã¬ãã¸ç®¡ç'], 133 ['ç¥è¯æå¡', 'ãã¬ãã¸ãµã¼ãã¹'], 134 ['ç¥è¯èµäº§', 'ãã¬ãã¸è³ç£'], 135 ['ç¥è¯ä½ç³»', 'ãã¬ãã¸ä½ç³»'], 136 ['ç¥è¯è¿è¥', 'ãã¬ãã¸éç¨'], 137 ['è¯ä¹æ£ç´¢', 'ã»ãã³ãã£ãã¯æ¤ç´¢'], 138 ['å¾è°±å¯è§å', 'ã°ã©ãå¯è¦å'], 139 ['ç»æåæ½å', 'æ§é åæ½åº'], 140 ['éç»æåæ½å', 'éæ§é åæ½åº'], 141 ['éç»æåæ°æ®', 'éæ§é åãã¼ã¿'], 142 ['夿¨¡æ', 'ãã«ãã¢ã¼ãã«'], 143 ['æ°æ®å¯è§å', 'ãã¼ã¿å¯è¦å'], 144 ['æ°æ®æ²»ç', 'ãã¼ã¿ã¬ããã³ã¹'], 145 ['æ°æ®èµäº§', 'ãã¼ã¿è³ç£'], 146 ['æ°æ®ä¸å°', 'ãã¼ã¿åºç¤'], 147 ['æ°æ®æ¥å ¥', 'ãã¼ã¿æ¥ç¶'], 148 ['æ°æ®æ¸ æ´', 'ãã¼ã¿ã¯ã¬ã³ã¸ã³ã°'], 149 ['æ°æ®å»ºæ¨¡', 'ãã¼ã¿ã¢ããªã³ã°'], 150 ['夿ºæ°æ®', 'è¤æ°ã½ã¼ã¹ã®ãã¼ã¿'], 151 ['ä¸å¡åºæ¯', 'æ¥åã·ã¼ã³'], 152 ['åºç¨åºæ¯', 'ã¦ã¼ã¹ã±ã¼ã¹'], 153 ['è¡ä¸åºæ¯', 'æ¥çã·ã¼ã³'], 154 ['è¡ä¸è§£å³æ¹æ¡', 'æ¥çã½ãªã¥ã¼ã·ã§ã³'], 155 ['è§£å³æ¹æ¡', 'ã½ãªã¥ã¼ã·ã§ã³'], 156 ['è¡ä¸æ´å¯', 'æ¥çã¤ã³ãµã¤ã'], 157 ['è¡ä¸', 'æ¥ç'], 158 ['ä¸å¡', 'æ¥å'], 159 ['产åè½å', 'è£½åæ©è½'], 160 ['å¹³å°è½å', 'ãã©ãããã©ã¼ã æ©è½'], 161 ['æ ¸å¿è½å', 'ä¸»è¦æ©è½'], 162 ['åè½ä»ç»', 'æ©è½ç´¹ä»'], 163 ['åè½è®²è§£', 'æ©è½è§£èª¬'], 164 ['åè½é¢å', 'æ°æ©è½äºå'], 165 ['çæ¬åå¸', 'ãã¼ã¸ã§ã³ãªãªã¼ã¹'], 166 ['çæ¬å级', 'ãã¼ã¸ã§ã³ã¢ãã'], 167 ['æ£å¼åå¸', 'æ£å¼ãªãªã¼ã¹'], 168 ['弿ºé¡¹ç®', 'ãªã¼ãã³ã½ã¼ã¹ããã¸ã§ã¯ã'], 169 ['弿ºç¤¾åº', 'ãªã¼ãã³ã½ã¼ã¹ã³ãã¥ããã£'],
170 ['å è´¹è¯ç¨', 'ç¡æãã©ã¤ã¢ã«'], 171 ['å®¢æ·æ¡ä¾', 'å°å ¥äºä¾'], 172 ['产åå ¬å', '製åã®ãç¥ãã'], 173 ['ææ¯å客', 'æè¡ããã°'], 174 ['社åºå¨æ', 'ã³ãã¥ããã£ãã¥ã¼ã¹'], 175 ['ç鍿¨è', 'ããããè¨äº'], 176 ['å ¨é¨å¨æ', 'ãã¹ã¦ã®ãã¥ã¼ã¹'], 177 ['èç³»æä»¬', 'ãåãåãã'], 178 ['åå¡åä½', 'äºæ¥ææº'], 179 ['æ¥ç详æ ', '詳細ãè¦ã'], 180 ['ç«å³å¨è¯¢', 'ä»ããç¸è«'], 181 ['è·åèµæ', 'è³æãå ¥æ'], 182 ['é¦é¡µ', 'ãã¼ã '] 183].sort(([left], [right]) => right.length - left.length); 184 185const TRANSLATION_ENTRIES = Object.entries(JA_TEXT_TRANSLATIONS).sort( 186 ([left], [right]) => right.length - left.length 187); 188 189const DATE_PATTERN = /(\d{4})\s*å¹´\s*(\d{1,2})\s*æ\s*(\d{1,2})\s*æ¥(?:\s*(\d{1,2}):(\d{2}))?/g; 190 191const replaceAllLiteral = (value, search, replacement) => value.split(search).join(replacement); 192 193const formatJapaneseDate = (_match, year, month, day, hour, minute) => { 194 const date = `${year}å¹´${Number(month)}æ${Number(day)}æ¥`; 195 return hour ? `${date} ${hour}:${minute}` : date; 196}; 197 198export const isJapaneseLocale = () => { 199 if (typeof document === 'undefined') { 200 return false; 201 } 202 203 return (document.documentElement.lang || '').toLowerCase().startsWith('ja'); 204}; 205 206export const translateToJapanese = (value) => { 207 if (typeof value !== 'string') { 208 return value; 209 } 210 211 const leading = value.match(/^\s*/)?.[0] || ''; 212 const trailing = value.match(/\s*$/)?.[0] || ''; 213 const normalized = value.replace(/\s+/g, ' ').trim(); 214 215 if (!normalized) { 216 return value; 217 } 218 219 if (JA_TEXT_TRANSLATIONS[normalized]) { 220 return `${leading}${JA_TEXT_TRANSLATIONS[normalized]}${trailing}`; 221 } 222 223 let translated = normalized.replace(DATE_PATTERN, formatJapaneseDate); 224 225 for (const [source, target] of TRANSLATION_ENTRIES) { 226 if (translated.includes(source)) { 227 translated = replaceAllLiteral(translated, source, target); 228 } 229 } 230 231 for (const [source, target] of JA_TERM_REPLACEMENTS) { 232 if (translated.includes(source)) { 233 translated = replaceAllLiteral(translated, source, target); 234 } 235 } 236 237 return `${leading}${translated}${trailing}`; 238}; 239 240export const translateObjectToJapanese = (value) => { 241 if (typeof value === 'string') { 242 return translateToJapanese(value); 243 } 244 245 if (Array.isArray(value)) { 246 return value.map(translateObjectToJapanese); 247 } 248 249 if (value && typeof value === 'object') { 250 return Object.fromEntries( 251 Object.entries(value).map(([key, item]) => [key, translateObjectToJapanese(item)]) 252 ); 253 } 254 255 return value; 256};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.