日本語のパッケージが英語表記される。

2011年1月6日 at 18:41

concrete5.4.1.1を使っています。

日本発のパッケージを作ろうとしたところ、機能追加で日本語表記されません。
インストールすれば日本語表記になりますがブロック名前は、英語名の時にDBに取り込まれているのでphpMyAdminで変更するしかありません。

調べたところ、models/packages.phpを下のように変更したら日本語表記できました。
本家のバグと思われます。

Index: package.php
===================================================================
--- package.php (リビジョン 200)
+++ package.php (作業コピー)
@@ -584,6 +584,7 @@
$pkg = Loader::package($p);
if (!empty($pkg)) {
$packagesTemp[] = $pkg;
+//$pkg->setupPackageLocalization();
}
}
$packages = $packagesTemp;


現在は、concrete/modelsにコピーしてから、それを修正してしのいでいます。

Re: 日本語のパッケージが英語表記される。

2011年1月6日 at 18:45
他も修正しないとブロック名が英語名になってしまうことがわかりました。

もうすこし探ってみます。
 

Re: Re: 日本語のパッケージが英語表記される。

2011年1月6日 at 18:50
loader.phpを変更したところ解決しました。
 

Re: 日本語のパッケージが英語表記される。

2011年1月6日 at 18:54
ご苦労様です。

ちなみに、これは、バグではないでしょう
多言語化の機能が不十分であるので、機能追加と捉えたほうが良いと思います。

ともかく、あったほうが良い機能なので、検証よろしくお願いします。
 

Re: Re: 日本語のパッケージが英語表記される。

2011年1月6日 at 19:15
あれ?パッケージ毎に翻訳されませんでしたっけ?
パッケージ単位での翻訳を機能としてうたっているのであればバグだと思います。
 

Re: Re: 日本語のパッケージが英語表記される。

2011年1月6日 at 19:12
こちらでも動きました

--- concrete/models/package.php 2011-01-06 18:30:14.000000000 +0900
+++ models/package.php 2011-01-06 19:07:27.000000000 +0900
@@ -445,6 +445,8 @@
protected function install() {
$db = Loader::db();
$dh = Loader::helper('date');
+// Add Kazuo Yamanoi
+ $this->setupPackageLocalization();
$v = array($this->getPackageName(), $this->getPackageDescription(), $this->getPackageVersion(), $this->getPackageHandle(), 1, $dh->getSystemDateTime());
$db->query("insert into Packages (pkgName, pkgDescription, pkgVersion, pkgHandle, pkgIsInstalled, pkgDateInstalled) values (?, ?, ?, ?, ?, ?)", $v);

@@ -584,7 +586,8 @@
$pkg = Loader::package($p);
if (!empty($pkg)) {
$packagesTemp[] = $pkg;
-//$pkg->setupPackageLocalization();
+// Add Kazuo Yamanoi
+ $pkg->setupPackageLocalization();
}
}
$packages = $packagesTemp;