質問するログイン新規登録

質問編集履歴

9

タイトル修正

2016/08/29 22:28

投稿

pack
pack

スコア256

title CHANGED
@@ -1,1 +1,1 @@
1
- CakePHPでデータベースを利用したi18n。多言語を一括でデータする登録方法
1
+ CakePHPでデータベースを利用したi18n。多言語を一括でデータ登録する方法
body CHANGED
File without changes

8

ソースコード修正

2016/08/29 22:28

投稿

pack
pack

スコア256

title CHANGED
File without changes
body CHANGED
@@ -47,12 +47,10 @@
47
47
  case 'jpn':
48
48
  Configure::write('Config.language', 'jpn');
49
49
  $this->User->locale='jpn';
50
- $this->Title->locale='jpn';
51
50
  break;
52
51
  default:
53
52
  Configure::write('Config.language', 'eng');
54
53
  $this->User->locale=false;
55
- $this->Title->locale=false;
56
54
  break;
57
55
  }
58
56
  }

7

ソースコード修正

2016/08/29 14:04

投稿

pack
pack

スコア256

title CHANGED
File without changes
body CHANGED
@@ -43,13 +43,17 @@
43
43
  public function beforeFilter() {
44
44
  parent::beforeFilter();
45
45
  //read cookie, language setting: 'eng' or 'jpn'
46
- if($this->Cookie->read('selectlanguage')){
46
+ switch ($this->Cookie->read('selectlanguage')){
47
- $lang = $this->Cookie->read('selectlanguage');
47
+ case 'jpn':
48
- Configure::write('Config.language', $lang);
48
+ Configure::write('Config.language', 'jpn');
49
- $this->User->locale=$lang;
49
+ $this->User->locale='jpn';
50
+ $this->Title->locale='jpn';
50
- }else{
51
+ break;
52
+ default:
51
- Configure::write('Config.language', 'eng');
53
+ Configure::write('Config.language', 'eng');
52
- $this->User->locale='eng';
54
+ $this->User->locale=false;
55
+ $this->Title->locale=false;
56
+ break;
53
57
  }
54
58
  }
55
59
 

6

文言修正

2016/08/29 14:04

投稿

pack
pack

スコア256

title CHANGED
File without changes
body CHANGED
@@ -7,7 +7,7 @@
7
7
  - 選択言語はクッキーに保存している(jpn or eng)
8
8
  - Userテーブルは、Authコンポーネントを利用している。
9
9
 
10
- **inputフィールド**
10
+ **登録フォームinputフィールド**
11
11
  username:user1
12
12
  password:pass1
13
13
  japanese_username(日本語表示名):ユーザー1
@@ -30,7 +30,7 @@
30
30
 
31
31
  ###課題
32
32
 
33
- - 選択言語に係らず、usernameはusernameに、日本語表示名をi18nテーブルのjpnのcontentに入れたい。
33
+ - 選択言語に係らず、usernameはusernameに、日本語表示名をuser_i18nsテーブルのjpnのcontentに入れたい。
34
34
 
35
35
 
36
36
  ###該当のソースコード
@@ -83,12 +83,12 @@
83
83
  ```
84
84
 
85
85
  ###現状
86
- - 選択言語により、usernameフィールドに入力された値がi18nのcontentに登録されてしまう
86
+ - 選択言語により、usernameフィールドに入力された値がuser_i18nsのcontentに保存され
87
87
 
88
88
 
89
89
  ```
90
90
  $this->User->locale='jpn';
91
- ```の場合、userのusername、i18nのcontent、両方に保存される
91
+ ```の場合、userのusername、user_i18nsのcontent、両方に保存される
92
92
 
93
93
 
94
94
  ###試したこと

5

質問文、追加

2016/08/29 13:53

投稿

pack
pack

スコア256

title CHANGED
File without changes
body CHANGED
@@ -26,6 +26,7 @@
26
26
  |2|jpn|User|2|username|ユーザー2|
27
27
 
28
28
  最終的に上記のように、データベースに登録を行いたいです。
29
+ i18nの基本的な使い方しか理解しておりませんので、方針などご提案いただければと思います。
29
30
 
30
31
  ###課題
31
32
 

4

ソースコード修正

2016/08/29 13:46

投稿

pack
pack

スコア256

title CHANGED
File without changes
body CHANGED
@@ -37,7 +37,7 @@
37
37
 
38
38
  class AdminsController extends AppController{
39
39
  public $name = 'Admins';
40
- public $uses = array('User);
40
+ public $uses = array('User');
41
41
 
42
42
  public function beforeFilter() {
43
43
  parent::beforeFilter();

3

ソースコード修正

2016/08/29 13:10

投稿

pack
pack

スコア256

title CHANGED
File without changes
body CHANGED
@@ -37,6 +37,7 @@
37
37
 
38
38
  class AdminsController extends AppController{
39
39
  public $name = 'Admins';
40
+ public $uses = array('User);
40
41
 
41
42
  public function beforeFilter() {
42
43
  parent::beforeFilter();

2

ソースコード修正

2016/08/29 13:09

投稿

pack
pack

スコア256

title CHANGED
File without changes
body CHANGED
@@ -34,10 +34,13 @@
34
34
 
35
35
  ###該当のソースコード
36
36
  ```php
37
+
38
+ class AdminsController extends AppController{
39
+ public $name = 'Admins';
40
+
37
41
  public function beforeFilter() {
38
42
  parent::beforeFilter();
39
-
40
- //read cookie, language setting: 'eng' or 'jpn'
43
+ //read cookie, language setting: 'eng' or 'jpn'
41
44
  if($this->Cookie->read('selectlanguage')){
42
45
  $lang = $this->Cookie->read('selectlanguage');
43
46
  Configure::write('Config.language', $lang);
@@ -46,8 +49,15 @@
46
49
  Configure::write('Config.language', 'eng');
47
50
  $this->User->locale='eng';
48
51
  }
52
+ }
49
53
 
54
+ public function add(){
55
+ if($this->request->is('post')) {
56
+ $this->User->save($this->request->data);
57
+ }
50
58
  }
59
+
60
+ }
51
61
  ```
52
62
  ```php
53
63
  <?= $this->Form->create('User', array('url' => 'add')) ?>
@@ -59,13 +69,6 @@
59
69
  <?= $this->Form->end(__('send')) ?>
60
70
  ```
61
71
  ```php
62
- public function add(){
63
- if($this->request->is('post')) {
64
- $this->User->save($this->request->data);
65
- }
66
- }
67
- ```
68
- ```php
69
72
  class User extends AppModel {
70
73
  public $name = 'User';
71
74
  public $actsAs = array(

1

現状部分に記載の、動作の修正

2016/08/29 13:07

投稿

pack
pack

スコア256

title CHANGED
File without changes
body CHANGED
@@ -83,7 +83,7 @@
83
83
 
84
84
  ```
85
85
  $this->User->locale='jpn';
86
- ```の場合、userのusernameは空、i18nのcontentに保存される
86
+ ```の場合、userのusername、i18nのcontent、両方に保存される
87
87
 
88
88
 
89
89
  ###試したこと