| |
| | |

CodersClub

 Forgot password?
 Register
Search
View: 5101|Reply: 3
Collapse the left

Settings autotranslation

[Copy link]
Post time: 2011-12-12 08:49
| Show all posts |Read mode
i think put images in common folder is better for multiple templates sites, its' not?

about cached db wrods : 2. Solve the problem with some language words in a database

all this words come in discuz $_G  array, and save in common_syscache table
i think only from this way this problem can be solved

create a language file like lang_db.php
in function_core.php modify cachedata function, and before return $data, use loops and replace cached words
i do this it's work correctly and is so fast
 Author| Post time: 2011-12-12 09:55
| Show all posts
i put this before return $data statement , function : cachedata, file: function_core.php (DRAFT)
  1. if(file_exists(DISCUZ_ROOT.'./source/language/'.$_G['language'].'/lang_db.php')){
  2.         include DISCUZ_ROOT.'./source/language/'.$_G['language'].'/lang_db.php';
  3.         foreach($data['setting']['navs'] as $nav => $key){
  4.                 $nvnm = strtolower($key['navname']);
  5.                 if(array_key_exists($nvnm,$lang_nav)){
  6.                         $lang_new = $lang_nav[$nvnm];
  7.                         $nav_new = $string = preg_replace("/(?<=>)$nvnm(?=<)/i",$lang_new,$key['nav']);
  8.                         $nav_new = preg_replace("/(?<=title\=")$nvnm(?=")/i",$lang_new,$nav_new);
  9.                        
  10.                         $data['setting']['navs'][$nav]['navname'] = $lang_new;
  11.                         $data['setting']['navs'][$nav]['nav'] = $nav_new;
  12.                 }
  13.         }
  14.        
  15.         foreach($data['setting']['mynavs'] as $nav => $key){
  16.                 $nvnm = strtolower($key['navname']);
  17.                 if(array_key_exists($nvnm,$lang_mynavs)){
  18.                         $lang_new = $lang_mynavs[$nvnm];
  19.                         $nav_new = $string = preg_replace("/(?<=>)$nvnm(?=<)/i",$lang_new,$key['code']);
  20.                        
  21.                         $data['setting']['mynavs'][$nav]['navname'] = $lang_new;
  22.                         $data['setting']['mynavs'][$nav]['code'] = $nav_new;
  23.                 }
  24.         }
  25.        
  26.         foreach($data['setting']['topnavs'] as $tnav => $tkey){
  27.                 foreach($tkey as $nav => $key){
  28.                         $nvnm = strtolower($key['navname']);
  29.                         if(array_key_exists($nvnm,$lang_mytopnavs)){
  30.                                 $lang_new = $lang_mytopnavs[$nvnm];
  31.                                 $nav_new = $string = preg_replace("/(?<=>)$nvnm(?=<)/i",$lang_new,$key['code']);
  32.                                 $data['setting']['topnavs'][$tnav][$nav]['navname'] = $lang_new;
  33.                                 $data['setting']['topnavs'][$tnav][$nav]['code'] = $nav_new;
  34.                         }
  35.                 }
  36.         }
  37.        
  38.         foreach($data['usergroups'] as $uiz => $key){
  39.                 $gtitle = strtolower($key['grouptitle']);
  40.                 if(array_key_exists($gtitle,$lang_grouptitle)){
  41.                         $data['usergroups'][$uiz]['grouptitle'] = $lang_grouptitle[$gtitle];
  42.                 }
  43.         }
  44.         $docond=1;
  45.         do {
  46.                 // For Multi usergroup users
  47.                 $dougrp = 'usergroup_'.$docond;
  48.                 if(isset($data[$dougrp])){
  49.                         $gtitle = strtolower($data[$dougrp]['grouptitle']);
  50.                         if(array_key_exists($gtitle,$lang_grouptitle)){
  51.                                 $data[$dougrp]['grouptitle'] = $lang_grouptitle[$gtitle];
  52.                         }
  53.                         $docond++;
  54.                 } else {
  55.                         $docond = false;
  56.                 }
  57.                
  58.         } while($docond);
  59.         }
Copy the Code
and i put blew code in source/language/fa/lang_db.php
  1. <?php
  2.         $lang_nav = array(
  3.                 "portal" => "پورتال",
  4.                 "space" => "خانه",
  5.                 "ranklist" => "برترین ها",
  6.                 "forum" => "انجمن",
  7.                 "groups" => "گروه ها",
  8.         );
  9.        
  10.         $lang_mynavs = array(
  11.                 "my friends" => "دوستان",
  12.                 "my threads" => "موضوعات",
  13.                 "my favorites" => "علاقه مندی",
  14.                 "magics" => "ابزارک",
  15.                 "medals" => "مدال ها",
  16.                 "tasks" => "وظایف",
  17.         );
  18.        
  19.         $lang_mytopnavs = array(
  20.                 "set favorite" => "افزودن به علاقه مندی",
  21.                 "set home" => "صفحه خانگی",
  22.         );
  23.        
  24.         $lang_grouptitle = array(
  25.                 "administrator" => "رئیس",
  26.                 "super moderator" => "مدیر ویژه",
  27.                 "moderator" => "مدیر",
  28.                 "read only" => "فقط بازدید",
  29.                 "banned" => "مسدود شده",
  30.                 "ip ban" => "مسدودست آی پی",
  31.                 "visitor" => "بازدید کننده",
  32.                 "waiting for verification" => "در انتظار تایید",
  33.                 "restricted membership" => "گروه کاربری محدود شده",
  34.                 "website editor" => "ویرایشگر سایت",
  35.                 "information ombudsman" => "بازرس اطلاعات",
  36.                 "auditor" => "بررسی کننده",
  37.                 "newbie" => "کاربر جدید",
  38.                 "member" => "کاربر",
  39.                 "full member" => "کاربر متوسط",
  40.                 "senior member" => "کاربر نیمه حرفه ای",
  41.                 "gold member" => "کاربر طلایی",
  42.                 "veteran" => "کاربر ویژه",
  43.         );
  44.        
  45.         $lang_points = array(
  46.                 "reputation" => "انرژی",
  47.                 "points" => "فعالیت",
  48.                 "contribution" => "تعامل",
  49.         );
  50.        
  51. ?>
Copy the Code

 Russia

Post time: 2011-12-12 10:44
| Show all posts
i think put images in common folder is better for multiple templates sites, its' not?

No.
We have decided to use language packs, that must contain all the language-specific things, including language images like stamps, etc.

about cached db wrods : 2. Solve the problem with some language words in a database

all this words come in discuz $_G  array, and save in common_syscache table
i think only from this way this problem can be solved

create a language file like lang_db.php
in function_core.php modify cachedata function, and before return $data, use loops and replace cached words
i do this it's work correctly and is so fast


You are right, it is a good solution.
And I have started allready to use this solution for navigation links and some settings yet before your suggestion

i put blew code in source/language/fa/lang_db.php

I put this values to the language/XX/lang_template.php.
May be, your suggestion is better than my one.
I'll think a little



Post time: 2011-12-18 20:38
| Show all posts
I'm thinking about working directly with database ;)
It's mean we can completly support for multi site, i'll share my idea for vot after it work
Thanks for your solution
You have to log in before you can reply Login | Register

Points Rules

Archive|Mobile|Dark room|CodersClub

Top.Mail.Ru
Top.Mail.Ru

2024-11-22 02:24 GMT+3 , Processed in 0.040369 sec., 8 queries .

Powered by Discuz! X3.4 Release 20230520

© 2001-2024 Discuz! Team.

MultiLingual version, Rev. 4301, © codersclub.org

Quick Reply To Top Return to the list