janneklouman / silverstripe-translatable-controllers
一个接口,允许简单翻译控制器URL段和操作。
dev-master
2018-05-08 15:59 UTC
Requires
- php: >=5.5
- silverstripe/framework: ^3.1
This package is not auto-updated.
Last update: 2024-09-16 20:25:52 UTC
README
本模块提供了一个简单的接口,允许您设置多个路由到控制器及其操作。最常见的情况可能是翻译这些路由。
要求
"require": { "php": "^5.4", "silverstripe/framework": "^3.1" }
安装
composer install jjjjjjjjjjjjjjjjjjjj/silverstripe-translatable-controllers
基本用法示例
以下示例提供了一个简单的控制器(ExampleController),其中一个函数(example_function),可通过以下方式访问
example.com/ExampleController/example_functionexample.com/example_example/function_functionexample.com/exempelcontroller/exempelfunktion(当区域设置为瑞典语时)example.com/コントローラーの例/関数の例(当区域设置为日语时)
使控制器实现TranslatableController接口
# ExampleController.php class ExampleController extends Controller implements TranslatableController { private static $allowed_actions = [ 'example_function' ]; public function getValidUrlSegments() { return [ 'example_example', _t('ExampleController.CONTROLLER_URL_SEGMENT') ]; } public function getValidUrlHandlers() { return [ 'function_function' => 'example_function', _t('ExampleController.CONTROLLER_ACTION_EXAMPLE') => 'example_function' ] } /** * Returns the number 42 */ public function example_function { return 42; } }
在目标语言(们)的翻译文件中定义您的路由
# sv_SE.yml sv: ExampleController: CONTROLLER_URL_SEGMENT: 'exempelcontroller' CONTROLLER_ACTION_EXAMPLE: 'exempelfunktion'
# ja_JP.yml ja: ExampleController: CONTROLLER_URL_SEGMENT: 'コントローラーの例' CONTROLLER_ACTION_EXAMPLE: '関数の例'