保加利亚语和塞尔维亚语SEO,用哪套字母写商品名比写了什么更决定谁能搜到

保加利亚语和塞尔维亚语SEO,用哪套字母写商品名比写了什么更决定谁能搜到
张文保 更新 36 分钟阅读 2,665 阅读
本文目录
  1. 为什么这两个市场不能打包成一句巴尔干西里尔?
  2. 塞尔维亚语的两套字母是什么关系?
  3. 保加利亚语的拉丁写法又是什么关系?
  4. 这跟希腊语的转写、越南语的带调不带调差在哪?
  5. 塞语的三十对三十,为什么说完全可逆?
  6. 二合字母回转时会产生歧义吗?
  7. 哪些词会在自动转写时被转坏?
  8. 塞语用户到底用哪套字母?分场景看
  9. 两套字母的内容算不算重复内容?
  10. 一个页面两套字母,URL该怎么排?
  11. 塞语站的字母切换器该放在哪一层?
  12. 保加利亚语的转写为什么是一部法律规定的?
  13. 法定转写表里哪几条最容易写错?
  14. ъ 在保加利亚语里是元音,不是硬音符号
  15. 保语的拉丁写法用在哪些地方?
  16. 保加利亚语没有格,但有后置定冠词
  17. 后置定冠词让前缀匹配失效在哪一步?
  18. 保加利亚语的定冠词还分几种形式?
  19. 保语的动词形态有多复杂?转述式是怎么回事
  20. 塞语的依格切与埃格切:比字母更深的一层分叉
  21. 该按哪一档分市场:塞尔维亚、波黑、黑山、克罗地亚?
  22. 塞语和克罗地亚语算不算一门语言?
  23. 西里尔和拉丁的同形混淆会带来什么风险?
  24. confusables表该怎么用在商品名审核上?
  25. 两套字母的排序规则要配几套?
  26. 塞语拉丁的dž、lj、nj排序时算一个字母
  27. 保语与塞语的字母集合有什么不同?
  28. 键盘布局、字体子集与正则字符类要怎么分开?
  29. 保加利亚的西里尔域名今年三月才委派,值不值得抢?
  30. 塞尔维亚的西里尔域名委派五年了,采用率为什么还是低?
  31. 站内搜索该怎么同时接住两套字母?
  32. 词干化在这两门语言上能做到什么程度?
  33. 品牌名该用哪套字母写?
  34. 价格、日期与数字格式两国差在哪?
  35. 地址与电话字段该怎么设计?
  36. 结构化数据的语言标记该怎么写?
  37. 两套字母的内容该怎么排优先级?
  38. 预算该怎么分?两个市场差出几倍
  39. 母语审校在这两门语言上该盯什么?
  40. 引擎那一半的功课为什么不在这篇里?
  41. 一个运动营养站从零开始,推荐什么顺序?
  42. 做完之后最先看到哪个指标动?
  43. 常见问题解答
  44. 塞尔维亚语的两套字母,能不能只做一套?
  45. 转写脚本一跑就能把拉丁版变成西里尔版,为什么还要人工审核?
  46. 保加利亚语要不要也做一份拉丁版内容?
  47. 这跟希腊语的Greeklish、越南语的带调不带调有什么本质区别?
  48. 西里尔和拉丁混排为什么危险,怎么发现?
  49. 依格切和埃格切这层差别,做电商真的需要处理吗?
  50. 刚委派的西里尔域名后缀值得注册吗?
  51. 权威参考资料

摘要:这两个市场常被打包成一句巴尔干西里尔就完事,实际上它们的字母问题根本不是同一类。塞尔维亚语的西里尔和拉丁都是官方正字法,三十个字母一一对应完全可逆,做内容要真做两份;保加利亚语只有西里尔是正字,拉丁写法由一部法律规定,只管URL和品牌名就够。这篇把两者拆开,再跟希腊语的转写、越南语的带调不带调划清界线。

为什么这两个市场不能打包成一句巴尔干西里尔?

做区域市场规划时,很容易把巴尔干几个国家放进同一个格子里。

都用西里尔字母、都是斯拉夫语、市场规模都不大,看起来完全可以共用一套方案。

接手一个做运动营养的站时,我也是这么估的,结果两边的工作量差了将近三倍。

差别的根源只有一句话:塞尔维亚语的拉丁写法是官方正字法,保加利亚语的拉丁写法不是。

这一个字的差别,往下推出来的是完全不同的内容策略、URL策略和预算分配。

把它们放在同一篇里讲,不是因为它们像,恰恰是因为它们最容易被误当成一回事。

顺带把另外几个邻国也划清楚:克罗地亚和斯洛文尼亚只用拉丁字母,北马其顿用西里尔但字母表又跟这两家都不同,巴尔干这个地理概念在字符这一层几乎没有任何统一性。

所以区域规划表里最好别写巴尔干这一行,直接按语言逐个列,看着啰嗦但能避免后面所有的连锁误判。

塞尔维亚语的两套字母是什么关系?

塞尔维亚语有两套官方书写系统,西里尔字母和拉丁字母,两套都写在正字法里。

西里尔那套有三十个字母,拉丁那套也是三十个,一一对应,没有多也没有少。

这个设计不是历史巧合,是十九世纪语言改革时刻意做成的:一个音一个字母,两套系统严格对齐。

所以从一套转到另一套,理论上是纯机械的字符替换,不需要理解语义。

这一点跟世界上大多数双书写系统都不一样,它是塞尔维亚语最独特的地方。

也正因为可逆,很多团队会以为转写脚本一跑就完事,后面会讲这个假设在哪儿破功。

这套一一对应关系还有个副产品:塞尔维亚语的拼写几乎完全表音,你听到一个词就能写出来,这让本地用户对拼写错误的容忍度比英语市场低得多。

保加利亚语的拉丁写法又是什么关系?

保加利亚语只有西里尔一套正字法,拉丁写法不是另一套书写系统,而是转写。

转写的目的是把西里尔文本表示成拉丁字符,用在护照、地名标牌、域名和URL这些地方。

它不是给保加利亚人读的,是给系统和外国人用的。

所以你不需要为保加利亚语准备两份内容,只需要一套规范的西里尔内容,加一套正确的转写规则。

这个区别在预算上是决定性的:塞尔维亚语的内容成本接近翻倍,保加利亚语几乎不增加。

把两者混为一谈的代价,要么是给保加利亚市场白做了一份没人看的拉丁内容,要么是给塞尔维亚市场少做了一半。

判断一门语言的第二套写法是正字法还是转写,有个简单的问题可以问:本地报纸和教科书会不会用它印刷。会就是正字法,不会就是转写。

这跟希腊语的转写、越南语的带调不带调差在哪?

同一个概念在小语种里出现过好几次,但每次的性质都不一样,混在一起想必然出错。

希腊语的情况是正字法加一套非正式转写,转写没有标准、一对多,同一个字母能写成好几种拉丁形式。

越南语的情况是完整正字法加剥掉记号的简化写法,剥掉之后是有损的,还会撞到别的词上去。

情形两套形态的关系规范地位处理成本
希腊语与拉丁转写无标准转写,一对多只有一套是正字法做变体覆盖
越南语带调与不带调有损简化,会撞词只有一套是正字法做双轨覆盖
保加利亚语与拉丁转写有法定标准,接近一对一只有一套是正字法只管URL与品牌名
塞尔维亚语两套字母三十对三十完全可逆两套都是正字法真做两份内容

希腊语那半边的具体做法我在希腊语那篇里拆过,越南语那半边在越南语那篇里。

四种情形里只有塞尔维亚语需要真做两份内容,这是判断预算的最关键一条。

这张表也可以当成一个通用判据用在别的语言上:先问两套形态是不是都被官方承认,再问它们之间的映射是不是可逆,两个答案就能定出处理成本的档位。

塞语的三十对三十,为什么说完全可逆?

西里尔的每个字母在拉丁那套里都有唯一对应,反过来也一样。

大部分是一对一的单字符映射,比如西里尔的第一个字母对应拉丁的a。

少数几个西里尔字母对应的是两个拉丁字符组成的二合字母。

正是这几个二合字母,让完全可逆这个说法在实际操作里出了一个缺口。

从西里尔转到拉丁始终是安全的,因为源头每个字母都是单一符号。

从拉丁转回西里尔就不一定了,这是下一节要拆的问题。

值得一提的是,这套对齐关系是十九世纪一次自上而下的语言改革刻意做出来的,改革者的原则就是一个音一个字母,所以这门语言几乎没有历史拼写包袱。

二合字母回转时会产生歧义吗?

会,而且这是塞尔维亚语字符处理上最硬核的一个坑。

拉丁那套里有三个二合字母,它们各自对应一个西里尔字母。

问题是:这两个拉丁字符也可能是两个独立字母碰巧挨在了一起。

比如一个由前缀加词根构成的词,前缀末尾是d,词根开头是ž,拼在一起就出现了dž这个组合。

自动转写脚本看到dž就会转成对应的那个西里尔字母,而正确答案是两个独立的西里尔字母。

结果是这个词被转错了,而且错得很隐蔽,因为转出来的字符串看着是个合法的词形。

这类问题在语言学上叫词界歧义,它在任何一个用多字符表示单个音位的书写系统里都会出现,只是塞尔维亚语因为两套字母互转的场景太频繁,暴露得格外明显。

哪些词会在自动转写时被转坏?

受影响的主要是三类词:带某些前缀的派生词、复合词的接合处、以及部分外来词。

这三类词在运动营养这种品类里出现得不少,因为很多成分名和功效描述都是派生词。

解决办法不是改算法,算法本身没法从字符串判断这是不是一个词界。

正确做法是维护一张例外词表,转写时先查表,表里没有的才走通用规则。

例外表通常几百行,公开的语言资源里能找到大部分,剩下的靠本地同事补。

这一步做不做,直接决定你的西里尔版内容是不是有一批词是错的。

实际操作里可以先跑一遍全量转换,把所有含这三个组合的词单独导出来,人工过一遍,这批词的数量通常比想象中少,一次能筛完。

塞语用户到底用哪套字母?分场景看

拉丁字母在日常网络使用中占优势,尤其是在手机和社交媒体上。

西里尔在官方文件、教育、传统媒体和正式场合里占优势。

年龄是个变量但不是决定性的,场景的影响比年龄大。

更实际的观察是:同一个人在同一天里两套都会用,取决于他在哪个应用里打字。

搜索这个场景整体偏向拉丁,因为输入法切换成本低,而且很多设备的默认布局就是拉丁。

但这不代表西里尔可以不做,官方类、健康类、以及年长用户占比高的查询,西里尔的比重明显更高。

还有一个容易被忽略的场景:纸质包装、门店招牌、发票和快递单上的字母选择往往跟线上不一致,做全渠道品牌时这两侧要单独确认,别默认它们一致。

两套字母的内容算不算重复内容?

不算,但你得让搜索引擎知道它们是同一份内容的两种书写形式。

两个页面的字符串完全不同,机器不会自动判断它们是同一个东西。

处理的核心是页面级的关系声明,把两个版本互相指认清楚。

这属于多语言站的架构层问题,不是塞尔维亚语这门语言特有的,所以这篇不展开讲配置细节。

要注意的是:塞语的两套字母在语言标签上不是两种语言,而是同一种语言的两种文字。

标签写法上要用文字子标签而不是另起一个语言代码,写错了搜索引擎会当成两个不相干的页面。

另外要提醒的是,两个版本的更新必须同步,一版改了另一版没改,时间一长内容就会出现事实性冲突,这类问题排查起来非常费劲。

一个页面两套字母,URL该怎么排?

最常见的做法是用路径前缀区分,两套内容各占一个目录。

URL里的slug一律用拉丁字符,哪怕是西里尔版的页面也一样。

原因很简单:西里尔URL在复制粘贴、外链引用和分享时会变成一长串百分号编码。

这一点跟其他非拉丁语言市场的结论一致,可读性上的损失大于本地化上的收益。

路径前缀之外别再叠加其他区分方式,多一层就多一批要维护的重定向。

决定用哪套目录做主版本时,看你的品类偏向哪个场景,运动营养这类偏日常消费的,拉丁做主更合理。

还有一个实操细节:西里尔版页面的slug用拉丁字符时,要从西里尔原文按转写规则生成,而不是直接复制拉丁版页面的slug,否则两版的URL语义会对不上。

塞语站的字母切换器该放在哪一层?

切换器要放在全局导航里,而且要在首屏可见的位置。

切换后要保持在当前页面,不能一律跳回首页,这是最常见的实现错误。

用户的选择要记住,下次访问直接进他上次选的那套。

记住的方式不要用IP判断,塞尔维亚境内两套都在用,按地理位置猜必错。

切换器本身的文案要两套字母各写一遍,让用户一眼看出点过去会变成什么。

这个组件看着简单,但它是塞语站唯一一个所有用户都会注意到的本地化细节。

记住用户选择时建议用长期有效的存储而不是会话级的,因为塞语用户切换字母的行为是一次性的偏好设定,不是每次访问都要重来一遍的操作。

保加利亚语的转写为什么是一部法律规定的?

2009年保加利亚通过了一部专门规范拉丁转写的法律,这在世界范围内都不多见。

立法的动机很实际:护照、身份证、路牌、地图上的地名拼写必须全国统一。

在这之前,同一个地名在不同文件上能拼出三四种拉丁写法,出国办事经常出问题。

法律颁布之后,转写规则就不再是风格选择,而是一条有明确答案的规范。

对做站的人来说,这意味着URL和品牌名的拉丁写法有唯一正确答案,不需要自己发明。

照着法定规则走,你的地名和商品名的拉丁写法就和政府文件、地图、导航软件全部对齐。

这部法律还有一个附带好处:它让保加利亚语的地名转写在地图服务、导航软件和政府数据之间保持一致,做本地业务时的地址匹配率因此高出不少。

法定转写表里哪几条最容易写错?

最容易错的是几个复合音字母,它们转写成两三个拉丁字符。

其中一个转成ts,一个转成ch,一个转成sh,还有一个转成四个字符的sht。

另外两个元音转成yu和ya,这两条经常被通用音译库转成别的写法。

最特别的一条在下一节讲:那个被很多人误以为是硬音符号的字母。

通用音译库的默认规则大多是按俄语设计的,直接用在保加利亚语上有好几条对不上。

所以别用现成库的默认配置,按法定表写死一份映射,几十行代码的事。

检验自己的转写模块最快的办法是拿几个知名城市名跑一遍,跟护照上或者路牌上的官方拼写对一下,错了会立刻显出来。

ъ 在保加利亚语里是元音,不是硬音符号

这条是同类文章几乎不会讲、但一定会踩的坑。

在俄语里,这个字母是个不发音的符号,只起分隔作用,出现频率极低。

在保加利亚语里,它是一个正儿八经的元音,读出来有音,而且出现频率相当高。

连国名本身都含这个字母,它在词的中间,不是什么边缘符号。

法定转写把它转成a,这一条按俄语规则处理的库全都会转错。

俄语的字母与词形处理我在俄语那篇里讲过,但这一条恰恰是不能从俄语搬过来的。

这个字母还带来一个连锁影响:按俄语字符集裁剪的字体子集有时候会把它当低频字符剔掉,结果保加利亚语页面上出现一批缺字形的方框。

保语的拉丁写法用在哪些地方?

URL的slug,这是最主要的用途。

品牌名和公司名的拉丁形式,用在国际业务和跨境支付场景。

地址表单里的城市和街道名,用户填英文地址时会用到。

除此之外,页面上的正文、标题、元描述一律用西里尔,不要做拉丁版本。

做了也没人搜,保加利亚用户几乎不会用拉丁字符搜索本国语言的内容。

这跟塞尔维亚语的情况完全相反,两个市场在这一点上正好走到了两个极端。

如果你的站上有用户生成内容,还要考虑一种情况:少数用户会用拉丁字符打保加利亚语,这属于非规范输入,做检索兼容即可,不必为它产出内容。

保加利亚语没有格,但有后置定冠词

斯拉夫语族普遍有复杂的格系统,俄语六个,波兰语七个。

保加利亚语是个例外,名词的格系统几乎完全消失了,这在斯拉夫语里相当罕见。

但它同时长出了另一样东西:定冠词接在名词词尾,跟词根粘成一个词。

这个特征跟罗马尼亚语那篇里讲的后置定冠词是同一回事,两门语言的亲缘关系其实很远。

它们共享这个特征,是因为长期相邻形成的巴尔干语言联盟,属于接触带来的趋同。

所以处理保加利亚语词形时,可以直接借用罗马尼亚语那套后置冠词的思路,比套俄语的格系统对路得多。

巴尔干语言联盟这个概念在做区域市场时其实挺有用:它能提前告诉你哪些语法特征会跨语言重复出现,处理方案可以在几个市场之间复用。

后置定冠词让前缀匹配失效在哪一步?

用户打的是带定冠词的形态,而你的索引里存的是不带冠词的原形。

带冠词的形态比原形长,所以原形不是它的前缀,前缀匹配的方向是反的。

结果就是站内搜索命中率莫名其妙地低,而前端和索引配置怎么查都是对的。

补救的办法是接一层词尾归并,把定冠词剥掉再匹配。

没有格系统这一点在这里反而是好消息:要剥的东西比俄语少得多。

所以保加利亚语的站内搜索改造,工作量比俄语站小一大截。

顺带说一句,这个坑在自动补全上表现得比在搜索结果上更明显,因为自动补全几乎全部依赖前缀匹配,一个字都不差地按前缀走。

保加利亚语的定冠词还分几种形式?

阳性名词的定冠词有两个形式,一个用在主语位置,一个用在其他位置。

这是格系统消失后留下的最后一点残余,只在阳性单数上还看得见。

口语里这个区分正在弱化,很多人两种混用,书面语里仍然要求严格。

对搜索的影响不大,因为商品名很少出现在需要区分的句法位置上。

但正文和文案里写错了,本地读者是能看出来的。

阴性和中性名词没有这个区分,一个形式走天下。

做内容时可以立一条简单规则:标题和商品名一律用不带冠词的原形,需要带冠词的自然表达只出现在正文里,这样既避开了形式选择的问题,也保住了检索形态。

保语的动词形态有多复杂?转述式是怎么回事

名词那边简单了,动词那边补回来了,而且补得很多。

保加利亚语的动词有一套专门用来转述别人说法的形态,语法书叫转述式。

意思是:当你说的事情不是自己亲眼见的,而是听说的,动词要换一套形式。

这在欧洲语言里很少见,它把信息来源直接编码进了动词里。

做内容时的实际影响是:引用第三方数据、转述研究结论、写用户评价摘要时,动词要用转述式。

用错了不影响排名,但读起来像是你在把听来的事情当亲身经历讲,可信度反而降低。

这套形态还有一个衍生用途:产品功效类的表述用转述式来写,语气上会显得更谨慎,在健康类内容上反而更符合本地读者对可信度的预期。

塞语的依格切与埃格切:比字母更深的一层分叉

这是塞尔维亚语里比字母选择更深、也更容易被忽略的一层差别。

同一个词根在两种发音传统里有两种写法,一种写得短,一种中间多两个字母。

牛奶、河流、时间这类基础词全在名单上,覆盖面相当广。

塞尔维亚本土主要用短的那种,波黑、黑山、克罗地亚主要用长的那种。

换句话说,字母只是一层分叉,发音传统是另一层,两层是正交的。

只做字母转换不处理这一层,你给波黑用户看到的内容会读起来像外地人写的。

这层差别在语音上其实来自同一个古音的两种演变结果,所以它的分布是成体系的,不是零散的例外,整理成替换表之后覆盖率很高。

该按哪一档分市场:塞尔维亚、波黑、黑山、克罗地亚?

先看非语言字段:货币不同、税制不同、物流不同,这四个是四个独立市场。

再看语言字段:字母偏好不同、发音传统不同、部分词汇不同。

预算有限时的正确顺序是先做塞尔维亚,因为它的市场规模最大、两套字母都要用。

第二档是克罗地亚,它只用拉丁字母,但要换发音传统和一批词汇。

波黑和黑山可以先复用,把差异做成词表覆盖,等到量起来了再单独拆。

这个分档逻辑跟三个以上市场的资产分层是同一类问题,只是这里多了一个字母维度。

还有一个非语言维度值得早点确认:这几个市场的支付习惯差别不小,货到付款的比例在其中几个国家高得超出预期,这会影响落地页的设计重点。

塞语和克罗地亚语算不算一门语言?

语言学上这个问题争了几十年,两边的看法至今不一致。

从互通度看,说这两门话的人之间几乎没有交流障碍。

从社会语言学和政治认同看,两边都坚持这是各自独立的语言。

做站的人不需要在这个问题上站队,只需要知道一件事:内容不能共用。

克罗地亚市场的用户对内容里出现塞尔维亚特有词汇是敏感的,反过来也一样。

所以判断标准不是语言学上算不算一门语言,是用户认不认这份内容是给自己看的。

实操上有个简单的自查:把你的内容拿给两边的本地同事各看一遍,如果有人说这读着像对面写的,那就说明词汇层还没分干净。

西里尔和拉丁的同形混淆会带来什么风险?

西里尔字母表里有一批字母,跟拉丁字母长得一模一样。

小写的a、e、o、p、c、x、y在两套字母表里视觉上没有区别,大写的更多。

视觉相同但码位不同,机器看到的是两个完全不同的字符。

混排的直接后果是商品名被切成几段、搜索匹配不上、以及复制粘贴之后搜不到。

更严重的场景是域名和账号名,混排字符是钓鱼域名最常用的手法之一。

UTS #39定义的安全机制就是专门处理这类问题的规范,做多字母站点值得完整读一遍。

还有一种更隐蔽的情况:从别处复制过来的商品名里混着不可见的零宽字符或者不同的空格字符,它们在同形混淆之外又加了一层,检测脚本最好一起覆盖。

confusables表该怎么用在商品名审核上?

Unicode维护了一份视觉混淆字符对照表,把所有长得像的字符成组列了出来。

拿这份表可以写一个很简单的审核脚本:检测一个字符串里有没有同时出现两套字母表的字符。

混排的情况直接拦下来,让录入的人重新输入。

这个检查在商品导入、用户注册、评论提交三个入口上各加一次,成本很低。

不加的代价是几个月后你的商品库里躺着一批永远搜不到的商品。

保哥见过一个站,某个畅销品的名字里混进了一个拉丁o,站内搜索半年查不到,客服一直以为是缺货。

检测脚本除了拦截,最好还能给出提示:告诉录入的人具体是第几个字符属于另一套字母表,否则他盯着屏幕看半天也找不出问题在哪。

两套字母的排序规则要配几套?

塞尔维亚语要配两套,西里尔版和拉丁版各一套。

两套的排序顺序在概念上是对齐的,但字符不同,比较规则要分开定义。

保加利亚语只配西里尔一套就够,因为拉丁写法不用于内容展示。

LDML的排序规范里两门语言的定义都有,指定区域设置就能用。

要注意西里尔字母的顺序在不同语言里并不相同,别拿俄语的顺序去排保加利亚语。

字母集合和顺序都不一样,用错了字母导航的顺序会看着差不多但就是不对。

两套排序规则还带来一个测试上的要求:字母导航的自动化测试要跑两遍,一遍在西里尔模式下,一遍在拉丁模式下,只测一套等于只测了一半。

塞语拉丁的dž、lj、nj排序时算一个字母

拉丁版塞尔维亚语的三个二合字母,排序时各算一个字母,占独立位置。

这个特性跟匈牙利语的多字母字母是同构的,我在匈牙利语那篇里拆过它对字母导航的影响。

差别在于匈牙利语有八个这样的字母,塞语拉丁只有三个,工作量小得多。

字母导航的按钮列表里要把这三个加进去,用户才找得到对应词条。

切分逻辑同样要按最长匹配走,先试两字符再落到单字符。

西里尔版没有这个问题,因为它们在西里尔里本来就是单个字母。

字母导航的按钮除了要加这三个,还要注意它们的显示顺序:它们各自排在对应单字母的全部词条之后,而不是紧跟着那个单字母。

保语与塞语的字母集合有什么不同?

两门语言都用西里尔,但字母表不是同一套。

塞尔维亚语的西里尔有三十个字母,其中六个是塞语特有的,别的西里尔语言里没有。

保加利亚语的西里尔也是三十个,但集合不同,它有塞语没有的几个字母。

反过来,塞语特有的那六个字母在保加利亚语里一个都不用。

Unicode的西里尔码表里能看到这些字母各自的码位,做字符白名单时按语言分开取。

把两门语言的字符集合并成一个大集合,是最省事也最容易出问题的做法。

两套字母集合的差异还会影响一件容易忽略的事:文本相似度和去重算法的字符级比较,跨语言用同一套参数会得出没有意义的结果。

键盘布局、字体子集与正则字符类要怎么分开?

字符集合不同,往下推出来的是三件具体的事。

字体子集要按语言分别裁剪,否则要么缺字形要么白白多加载几十KB。

正则的字符类不能写成一个笼统的西里尔范围,那会放进一大批两门语言都不用的字符。

输入法和键盘布局的引导文案要分开写,两国用户的默认布局不一样。

这三件事在项目初期定下来,成本几乎为零;等内容铺开了再改,要动的地方非常多。

字体子集这一项在移动端的收益最直接,运动营养这类品类的用户里移动端占比通常在七成以上。

字体子集这一步建议把两门语言各自的字符集导出成明确的清单存进版本库,以后换字体或者升级构建工具时,照着清单重新裁剪就行。

保加利亚的西里尔域名今年三月才委派,值不值得抢?

保加利亚申请西里尔字母的国家域名后缀,前后拖了好几年。

卡住的原因是它跟另一个已存在的拉丁后缀在视觉上被认为过于相似,属于前面讲的同形混淆问题。

IANA的委派记录显示它的注册日期是今年三月,也就是几个月前的事。

刚委派的后缀,注册量和用户认知度都还很低,短期内不会成为主流。

值不值得注册取决于你的品牌保护预算,从流量角度看现在还看不到收益。

务实的做法是主站继续用现有的拉丁后缀,把西里尔后缀作为防御性注册。

另外要留意一点:新委派的后缀在早期常有优先注册和争议解决的时间窗,品牌方错过这个窗口之后再想拿回来,成本会高很多。

塞尔维亚的西里尔域名委派五年了,采用率为什么还是低?

塞尔维亚的西里尔后缀在2011年就完成了委派,比保加利亚早了五年。

五年过去,实际注册量跟拉丁后缀相比仍然差着一个数量级。

原因不复杂:域名要打字、要口头传播、要印在包装上,拉丁字符在这几个场景里都更方便。

注册局的说明页把两种后缀的注册流程并排放着,本身就是这个市场的写照。

这段经验对做保加利亚市场有直接参考价值:别指望新委派的西里尔后缀能带来流量。

域名这一层的结论是:两个市场都用拉丁后缀做主站,西里尔后缀只做品牌防御。

这里还有个反面教训:有些团队会把西里尔后缀设成主域名以示本地化诚意,结果外链、口碑传播和线下物料上全是打不出来的字符,得不偿失。

站内搜索该怎么同时接住两套字母?

核心思路是在索引阶段做规范化,把两套字母统一到其中一套。

统一到哪一套不重要,重要的是查询和索引走同一套转换。

转换要用前面说的例外表版本,别用裸的字符替换,否则二合字母那批词会被转坏。

展示层一律用用户当前选择的那套字母,这跟索引层的统一不冲突。

保加利亚语这边简单得多,只有西里尔一套,需要处理的是定冠词的剥离。

两边配完之后都要拿真实日志跑回归,重点看零结果率。

还要注意查询日志的存储:如果日志表的字符集没配对,西里尔查询存进去会变成问号,那你连诊断的原始数据都没有了。

词干化在这两门语言上能做到什么程度?

Snowball的塞尔维亚语词干算法覆盖了名词、形容词和动词的常见词尾。

它是按拉丁形态写的,所以西里尔那边要先转成拉丁再送进去。

保加利亚语这边没有同等成熟的现成方案,主要靠自己写定冠词剥离规则。

好在保加利亚语没有格,要剥的形态数量有限,一两百条规则能覆盖大部分。

保加利亚国家语料库可以用来验证规则的覆盖面,拿真实语料跑一遍比拍脑袋靠谱。

两门语言都建议给词干化设一个最短词根长度,防止短词被切成没有意义的残根。

词干化的效果验证不要只看零结果率,还要看误合并率,也就是本来不该归到一起的词被切成了同一个词根,这类错误会让搜索结果显得毫不相关。

品牌名该用哪套字母写?

国际品牌一律保留拉丁原形,两个市场都不要转写。

本地品牌在塞尔维亚要准备两套,因为两套都是正字法,两套都会被搜。

本地品牌在保加利亚只用西里尔,拉丁形式只出现在域名和法务文件里。

商品成分名这类专业词汇,两个市场都倾向于用拉丁原形加西里尔解释。

运动营养品类在这一点上特别明显,成分的国际通用名比本地译名的搜索量高不少。

标题里的处理是拉丁原形在前、本地写法在后,两种形态各占一次。

成分名还有一个细节:国际通用名和本地俗名有时候指向的浓度或者剂型不同,做属性字典时要把这层差别记清楚,不然会出现描述与实物不符的投诉。

价格、日期与数字格式两国差在哪?

保加利亚的货币代码是BGN,塞尔维亚是RSD,两者不能混。

两国的小数点都用逗号,千分位用空格或者点,具体写法要按本地习惯确认。

日期都是日月年顺序,跟大多数欧陆国家一致。

塞尔维亚第纳尔的面额数字比较大,价格筛选器的档位要按本地价位重设。

两国的增值税率不同,含税价的展示规则也要分开配。

这些字段属于非语言层,但它们的错误比语法错误更容易被用户直接感知到。

另外提醒一句,两国的度量单位习惯一致都用公制,但运动营养品类里常见的英制单位标注要不要保留,取决于你的目标客群是不是健身圈的重度用户。

地址与电话字段该怎么设计?

保加利亚邮编四位,塞尔维亚五位,表单校验的位数要分开。

地址顺序两国都是从大到小,跟中文习惯一致。

电话号码的国家代码不同,格式化规则也不一样。

地址字段的字符白名单要允许对应语言的西里尔字母,别只放拉丁。

用户在地址里混用两套字母的情况在塞尔维亚很常见,校验规则不能太严。

严了的后果是用户填不进去直接放弃下单,这个损失比脏数据大得多。

表单的输入提示最好用当地语言写,并且给一个填好的示例,示例的作用比任何校验规则都大,能减少一大半的填写错误。

结构化数据的语言标记该怎么写?

保加利亚语用bg,塞尔维亚语用sr,这是两位语言代码。

塞尔维亚语要区分文字时,在语言代码后面加文字子标签,西里尔和拉丁各一个。

这是文字子标签,不是地区子标签,写成两个国家代码是错的。

页面的lang属性、结构化数据的语言字段、站点地图三处要保持一致。

货币字段用标准代码,不要写本地的货币缩写。

这几项写对了,本地结果里的展现完整度会明显提升。

还要检查一处:站点地图里如果为两套字母各列了一份,那两份的语言标记必须跟页面上的一致,不一致时搜索引擎会以页面上的为准,站点地图那份就白写了。

两套字母的内容该怎么排优先级?

先做拉丁版,因为搜索场景整体偏向拉丁。

西里尔版第二批做,优先覆盖官方类、健康类和年长用户占比高的品类。

两版的商品数据、价格、库存共用同一个数据源,只有文本层分开。

转换脚本能自动生成的部分不要人工重写,人工只审核例外词表覆盖的那批。

正文里的语气和用词可以两版略有差别,因为使用场景本来就不同。

但事实性内容必须完全一致,不然会出现两版说法不一的尴尬。

排优先级时可以用一个简单的判据:这个品类的用户在什么场景下做决策。偏日常快消的场景拉丁优先,偏正式和健康咨询的场景西里尔的权重要往上调。

预算该怎么分?两个市场差出几倍

塞尔维亚的内容成本大约是单语言市场的一点五到一点八倍。

不到两倍的原因是有相当一部分工作可以自动化,人工只负责审核。

保加利亚的内容成本基本等于单语言市场,只多出转写规则那一次性的几十行代码。

如果两个市场同时做,共用的部分是商品数据、图片、以及非语言字段的本地化框架。

不能共用的是文本内容本身,这两门语言互相不通,别想着靠改几个词凑合。

把预算按一点八比一分给塞尔维亚和保加利亚,通常是接近实际的一个起点。

这个比例不是固定的,它随自动化程度变化:例外表和转写模块做得越扎实,人工审核的比重越低,塞尔维亚那一侧的倍数就越接近一点五。

母语审校在这两门语言上该盯什么?

塞尔维亚语第一条:转写后的西里尔版里有没有二合字母被转坏的词。

第二条:发音传统是不是统一,别在同一页里两种写法混着来。

第三条:有没有混进克罗地亚特有的词汇。

保加利亚语第一条:定冠词的形式对不对,尤其是阳性单数那两个形式。

第二条:引用第三方内容的地方有没有用转述式动词。

两门语言共同的最后一条:让审校的人念一遍,念着卡壳的地方一定有问题。

审校的成果要沉淀成检查清单和例外表,而不是只改一遍稿子,同一类问题改到第三次还在出现,就说明它该进自动检查而不是继续靠人眼抓。

引擎那一半的功课为什么不在这篇里?

这篇从头到尾讲的是书写系统、字符、词形和格式。

哪个搜索引擎在这两个市场份额更高、怎么排名,那是引擎层的题。

多语言站按什么维度分目录、页面关系怎么声明,那是架构层的题。

三层混着写,结果通常是每一层都只讲了个开头。

分开写的好处是语言层的结论能长期复用,而引擎层的结论过几年就会过时。

你可以把这篇当成这两个市场的语言侧清单,另外两层另有专篇。

这种分法还有一个好处:字符和词形这一层的结论几乎不会过时,五年之后回头看依然成立,而引擎的排名逻辑早就换了几轮。

一个运动营养站从零开始,推荐什么顺序?

第一步定市场分档,先确认要做几个国家、每个国家用哪套字母。

第二步写转写模块,塞语走带例外表的双向转换,保语走法定转写表。

第三步加同形混淆检查,挂在商品导入和用户输入两个入口上。

第四步配排序规则和字体子集,按语言分开。

第五步配站内搜索的字母统一与词尾剥离。

第六步才是内容生产,这时候拉丁版和西里尔版的流水线已经能跑通了。

这六步里第一步最容易被跳过,但它决定后面所有工作的范围,市场分档没定就开始写转写模块,很可能会为一个根本不打算做的市场写一堆代码。

做完之后最先看到哪个指标动?

同形混淆检查上线后,商品搜不到的客诉会立刻少一批。

站内搜索的字母统一配完,零结果率通常一两周内明显下降。

字母切换器改对之后,塞尔维亚市场的跳出率会有可见改善。

内容侧的自然流量增长最慢,要等两版内容都铺开才有。

转写例外表这一项的收益不在报表里,它防的是一批永远搜不到的错词。

把这几项排在一起看,会发现前四步全是工程活,真正花钱的内容生产反而在最后。

如果只能先做一件事,那就做同形混淆检查,它的实现成本最低,拦住的却是最难被发现、也最难被事后修复的一类数据污染。

常见问题解答

塞尔维亚语的两套字母,能不能只做一套?

不建议。两套都是官方正字法,两套都有真实的搜索量,只做一套等于主动放弃一部分市场。拉丁在日常网络使用和搜索场景里占优势,西里尔在官方、教育、健康类内容和年长用户里占比更高。预算实在紧张时的折中办法是:拉丁做全站,西里尔只做核心品类页和高价值内容,同时把两个版本的关系声明配对,让搜索引擎知道它们是同一份内容的两种文字。等数据出来再决定要不要补齐,比一开始就砍掉一半稳妥。折中期间也别把西里尔版做成低质量的机器转换稿,宁可少做几个页面,做出来的每一页都要过例外表和人工审核。

转写脚本一跑就能把拉丁版变成西里尔版,为什么还要人工审核?

因为拉丁转西里尔这个方向不是无损的。拉丁那套里有三个二合字母,它们各自对应一个西里尔字母,但这两个字符也可能是两个独立字母碰巧挨在一起,比如某些前缀加词根的组合。脚本无法从字符串本身判断这是不是一个词界,遇到这种词就会转错,而且转出来的字符串看着是合法词形,肉眼极难发现。正确做法是维护一张例外词表,转写时先查表,人工只审核这批词。西里尔转拉丁的方向是安全的,不需要例外表。另外建议把这批例外词单独存成一份带版本的资源文件,因为它会随着商品线扩张不断新增,散落在代码里迟早会丢。

保加利亚语要不要也做一份拉丁版内容?

不要。保加利亚语只有西里尔一套正字法,拉丁写法是转写,用途只有三处:URL的slug、品牌与公司名的国际形式、以及地址表单里填英文地址的场景。保加利亚用户几乎不会用拉丁字符搜索本国语言的内容,做了拉丁版正文既没有流量也白白增加维护成本。真正要做对的是转写规则本身:2009年有一部法律规定了标准转写表,照着走能保证你的地名和品牌拼写跟护照、路牌、地图全部对齐。唯一值得额外做的是品牌名的拉丁形式落地页,它服务的是跨境搜索和国际合作方,跟本地用户的搜索行为无关。

这跟希腊语的Greeklish、越南语的带调不带调有什么本质区别?

区别在于两套形态的规范地位。希腊语的拉丁转写是非正式的,没有标准,一个字母能写成好几种拉丁形式,处理办法是做变体覆盖。越南语的不带调写法是把正字法的记号剥掉,有损而且会撞到别的词上,处理办法是做双轨覆盖。保加利亚语的拉丁转写有法律规定,接近一对一,但它不用于内容展示。只有塞尔维亚语是两套都属于正字法,两套都会被用户拿来阅读和搜索,所以只有它需要真做两份内容。四种情形的处理成本从低到高排,塞尔维亚语在最高的那一档。把这个判据抽象出来就是两个问题:两套形态是不是都被官方承认,它们之间的映射是不是可逆,答案组合直接对应处理成本的档位。

西里尔和拉丁混排为什么危险,怎么发现?

西里尔字母表里有一批字母跟拉丁字母长得完全一样,小写的a、e、o、p、c、x、y都在其中,大写的更多。视觉相同但码位不同,机器看到的是两个不同字符,结果是商品名被切成几段、站内搜索匹配不上、用户复制粘贴之后也搜不到。发现的办法是拿Unicode的视觉混淆字符对照表写一个检查脚本,检测一个字符串里有没有同时出现两套字母表的字符,混排的直接拦下来。这个检查建议挂在商品导入、用户注册、评论提交三个入口上,成本很低。检测脚本最好把出问题的字符位置一起报出来,只说这条有问题而不指明位置,录入的人对着屏幕根本看不出差别在哪。

依格切和埃格切这层差别,做电商真的需要处理吗?

如果你只做塞尔维亚一个国家,不需要,本土基本统一用一种。如果你要覆盖波黑、黑山或者克罗地亚,就必须处理,因为受影响的是牛奶、河流、时间这类基础词,覆盖面很广,用错了本地用户一眼就能看出内容是给别处写的。实操上不用重写整站,把受影响的高频词整理成一张替换表,按目标市场跑一遍即可。要注意这层差别跟字母选择是正交的两件事:字母是文字层,发音传统是词汇层,只做字母转换解决不了这一层。整理替换表时顺手记录每个词对的使用地区,这一列在以后拆分市场、投放广告和做内容本地化时会反复用到。

刚委派的西里尔域名后缀值得注册吗?

从流量角度看短期内看不到收益。保加利亚的西里尔后缀今年三月才完成委派,注册量和用户认知度都还很低;塞尔维亚的西里尔后缀早在五年前就委派了,到今天实际注册量跟拉丁后缀相比仍然差着一个数量级。原因很实际:域名要打字、要口头传播、要印在包装上,拉丁字符在这几个场景里都更方便。务实的做法是主站继续用现有的拉丁后缀,把西里尔后缀作为品牌防御性注册,成本不高但能避免被抢注。如果决定注册,记得把它做成跳转到主域名而不是独立站点,两个域名各自承载一份内容会直接制造重复内容问题。

权威参考资料

分享到
标签
版权声明

本文标题:《保加利亚语和塞尔维亚语SEO,用哪套字母写商品名比写了什么更决定谁能搜到》

本文链接:https://zhangwenbao.com/bulgarian-serbian-seo-cyrillic-latin-dual-script.html

版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0

继续阅读
发表评论
分享到微信 或在下方手动填写
支持 Ctrl + Enter 提交