Laravel本地化:URL、文件夹及数据库应使用哪种Locale格式?
Laravel本地化场景的Locale格式选择
各场景格式建议
URL:连字符格式(如en-us、zh-tw)
- 符合主流网站的用户浏览习惯,适配
mcamara/laravel-localization包的默认配置,无需额外修改URL解析逻辑,保证路由可读性与兼容性。
文件夹名:下划线格式(如en_US、zh_TW)
- 遵循Laravel官方基于ISO 15897的规范建议,同时
mcamara/laravel-localization支持在配置文件中完成URL连字符格式到下划线命名文件夹的映射,兼顾框架规范与URL展示需求。
数据库:下划线格式(如en_US、zh_TW)
- 避免连字符作为字段值带来的变量名使用限制(无需在Blade或控制器中频繁用
str_replace转换格式),同时适配Astrotomic/laravel-translatable包对locale字段的要求,减少代码冗余。
优化格式转换的实用技巧
可以在项目中定义全局辅助函数,统一处理两种格式的转换:
function locale_to_underscore(string $locale): string { return str_replace('-', '_', $locale); } function locale_to_hyphen(string $locale): string { return str_replace('_', '-', $locale); }
需要转换时直接调用即可,比如将URL获取的en-us转为en_US用于数据库查询,或将数据库取出的zh_TW转为zh-tw用于URL生成。
内容的提问来源于stack exchange,提问作者ronrun
相关产品推荐
相关产品推荐

