我在构建网站时多次遇到这个问题.我将解释使用PHP和Laravel作为示例,但这个问题是一个常见的多个平台.这已经在几个问题中得到解决(post1,post2,post3,post4和其他一些问题),但帖子并没有真正得到一个好的答案.
问题是:在语言文件中构建翻译内容的最佳方法是什么?
我目前正在使用Laravel(我没有提到该版本,因为Laravel 4和Laravel 5都具有类似的本地化功能,至少与本主题的内容相似).
本地化构建了跨语言文件(en,es,de,fr ...)的内容,其中可以存在多个.php文件,这些文件包含返回多级字典结构的return语句.
/lang
/en
messages.php
/es
messages.php
Run Code Online (Sandbox Code Playgroud)
并且文件包含这样的内容:
<?php
return [
'example1' => 'example message for value exaple-key',
'example2' => [
'sub-example' => 'example message for example1.sub.example',
],
];
Run Code Online (Sandbox Code Playgroud)
通过这样做来调用这个:
//Laravel 5
trans('messages.example1'); //outputs 'example message for value exaple-key'
trans('messages.example2.sub-example'); //outputs 'example message for example1.sub.example'
//Laravel 4
Lang::get('messages.example1'); //outputs 'example message for value exaple-key'
Lang::get('messages.example2.sub-example'); //outputs 'example message for example1.sub.example' …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的项目部署到服务器并在那里运行它.当我尝试从命令行启动脚本时,它会在导入parrent目录中的脚本时显示错误.
我使用PyCharm创建了项目(python 2.7.10),它被分散到多个目录中.文件夹loock fimetnihg像这样:
项目/目录/子目录/ main_dir/script1.py
from dir.subdir.other_dir.script2 import * //gives error here
Run Code Online (Sandbox Code Playgroud)
项目/目录/子目录/ other_dir/script2.py
def my_function():
//do something
Run Code Online (Sandbox Code Playgroud)
我通过转到main_dir并运行:python script1.py来运行脚本
运行尝试从PhpStorm运行单元测试时出现此错误:
Fatal error: Class 'TestCase' not found in C:\xampp\htdocs\etestproject\app\tests\ExampleTest.php on line 3
Run Code Online (Sandbox Code Playgroud)
我可以跑:
phpunit app/tests/
Run Code Online (Sandbox Code Playgroud)
来自我项目的根目录,但不是来自PhpStorm
附加信息:
当我添加'Illuminate\Foundation\Testing\TestCase'到我的app/confg/app.php
并运行composer update后,它没有通过,如果我添加/要求"phpunit/phpunit"我composer.json和朗姆我的测试从PhpStorm他们仍然回报相同的错误.
laravel ×2
php ×2
laravel-4 ×1
phpstorm ×1
phpunit ×1
pycharm ×1
python ×1
python-2.7 ×1
translation ×1
unit-testing ×1
web ×1