tomk79/px2-i18n

安装: 17

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

公开问题: 0

语言:JavaScript

0.1.0 2023-02-11 08:56 UTC

This package is auto-updated.

Last update: 2024-09-11 12:24:36 UTC


README

这是一个用于制作的多语言兼容网站的插件,适用于 Pickles 2。

入门指南 - 设置

1. 在 composer.json 中添加 tomk79/px2-i18n

require 项中添加 tomk79/px2-i18n

$ composer require tomk79/px2-i18n;

2. 在 config.php 中添加设置

编辑配置文件 config.php(通常是 ./px-files/config.php)。

针对相应语言的设置

/** デフォルトの言語 */
$conf->default_lang = 'ja';

/** 対応する言語 */
$conf->accept_langs = array('en', 'zh-CN', 'zh-TW', 'ko');

网站地图的多语言化

$conf->funcs->before_sitemap 的最后添加 tomk79\pickles2\px2I18n\loader::site()

/**
 * funcs: Before sitemap
 *
 * サイトマップ読み込みの前に実行するプラグインを設定します。
 */
$conf->funcs->before_sitemap = array(

    /* 中略 */

    // カスタムサイトマップオブジェクトを生成して登録する
    tomk79\pickles2\px2I18n\loader::site(),

    // LangBank を `$px->lb` に登録する
    tomk79\pickles2\px2I18n\loader::langbank( [
		"path_csv" => "/realpath/to/language.csv",
	] ),
);

Broccoli 文本输入字段的国际化

/** カスタムフィールドを登録 */
$conf->plugins->px2dt->guieditor->custom_fields = array(
	'text'=>array(
		'backend'=>array(
			'class' => 'tomk79\\pickles2\\px2I18n\\fields\\text',
			'require' => 'path/to/vendor/tomk79/px2-i18n/fields/i18n_text/backend/text.js',
		),
		'frontend'=>array(
			'dir' => 'path/to/vendor/tomk79/px2-i18n/fields/i18n_text/frontend/',
			'file' => array(
				'text.css',
				'text.js'
			),
			'function' => 'window.BroccoliFieldPx2I18nText'
		),
	),
	'html_attr_text'=>array(
		'backend'=>array(
			'class' => 'tomk79\\pickles2\\px2I18n\\fields\\html_attr_text',
			'require' => 'path/to/vendor/tomk79/px2-i18n/fields/i18n_html_attr_text/backend/html_attr_text.js',
		),
		'frontend'=>array(
			'dir' => 'path/to/vendor/tomk79/px2-i18n/fields/i18n_html_attr_text/frontend/',
			'file' => array(
				'html_attr_text.css',
				'html_attr_text.js'
			),
			'function' => 'window.BroccoliFieldPx2I18nHtmlAttrText'
		),
	),
	'multitext'=>array(
		'backend'=>array(
			'class' => 'tomk79\\pickles2\\px2I18n\\fields\\multitext',
			'require' => 'path/to/vendor/tomk79/px2-i18n/fields/i18n_multitext/backend/multitext.js',
		),
		'frontend'=>array(
			'dir' => 'path/to/vendor/tomk79/px2-i18n/fields/i18n_multitext/frontend/',
			'file' => array(
				'multitext.css',
				'multitext.js',
			),
			'function' => 'window.BroccoliFieldPx2I18nMultitext'
		),
	),
	'summernote'=>array(
		'backend'=>array(
			'class' => 'tomk79\\pickles2\\px2I18n\\fields\\summernote',
			'require' => 'path/to/vendor/tomk79/px2-i18n/fields/i18n_summernote/backend/summernote.js',
		),
		'frontend'=>array(
			'dir' => 'path/to/vendor/tomk79/px2-i18n/fields/i18n_summernote/frontend/',
			'file' => array(
				'summernote.css',
				'summernote.js',
				"summernote/summernote.min.css",
				"summernote/summernote.min.js",
			),
			'function' => 'window.BroccoliFieldPx2I18nSummernote'
		),
	),
);

/** Broccoliフィールドの初期設定 */
$mlSettings = array(
	'defaultLang' => $conf->default_lang,
	'subLangs' => $conf->accept_langs,
);

$conf->plugins->px2dt->guieditor->field_config = array(

	// text フィールドを設定
	'text' => $mlSettings,

	// html_attr_text フィールドを設定
	'html_attr_text' => $mlSettings,

	// multitext フィールドを設定
	'multitext' => $mlSettings,

	// summernote フィールドを設定
	'summernote' => $mlSettings,
);

在环境变量中声明 Google Translation 的认证信息

// Google Cloud の認証情報のパスを、環境変数として宣言する
putenv( 'GOOGLE_APPLICATION_CREDENTIALS=/path/to/google-cloud-credentials.json' );

多语言化页面的发布设置

将针对每种语言的对应关系定义为设备特定的输出设置。

$devices = array();
foreach( $conf->accept_langs as $langCode ){
	array_push( $devices, array(
		'user_agent'=>'Mozilla/',$langCode,
		'params' => array(
			'LANG' => $langCode,
		),
		'path_publish_dir'=>'../dist/',
		'path_rewrite_rule'=>'/'.$langCode.'{$dirname}/{$filename}.{$ext}',
		'paths_target'=>array(
			'/*',
		),
		'paths_ignore'=>array(
			// '/common/*',
		),

		// リンクの書き換え方向
		// `origin2origin`、`origin2rewrited`、`rewrited2origin`、`rewrited2rewrited` のいずれかで指定します。
		// `origin` は変換前のパス、 `rewrited` は変換後のパスを意味します。
		// 変換前のパスから変換後のパスへのリンクとして書き換える場合は `origin2rewrited` のように指定します。
		'rewrite_direction'=>'rewrited2rewrited',
	) );
}

/**
 * funcs: Before content
 *
 * サイトマップ読み込みの後、コンテンツ実行の前に実行するプラグインを設定します。
 */
$conf->funcs->before_content = array(
    // PX=api
    'picklesFramework2\commands\api::register' ,

    // PX=publish (px2-publish-ex)
    'tomk79\pickles2\publishEx\publish::register('.json_encode(array(
        'devices'=>$devices,
    )).')' ,

    // PX=px2dthelper
    'tomk79\pickles2\px2dthelper\main::register' ,
);

更新日志 - 变更日志

tomk79/px2-i18n v0.1.0 (2023年2月11日)

  • 支持的 PHP 版本更改为 >=7.3.0
  • 编辑界面已支持多语言(英语、中文、韩语)。
  • 插件设置可以更直接地表达。
  • 添加了 langbank 的加载功能。

tomk79/px2-i18n v0.0.1 (2021年7月18日)

  • 首次发布。

许可证 - License

MIT License

作者 - Author