diff --git a/phpBB/adm/admin_language.php b/phpBB/adm/admin_language.php
index 50f810d98e..725472a440 100644
--- a/phpBB/adm/admin_language.php
+++ b/phpBB/adm/admin_language.php
@@ -10,18 +10,8 @@
/**
*/
-
-// TODO:
-// * new auth?
-// * add ability to change uninstalled language packs
-// * add ability to create new language pack from existing one
-// * add documentation/help
-// * Ability to add/remove entries to/from help files?
-// * Extend help entries to textarea
-
if (!empty($setmodules))
{
- // New auth for language dependent settings?
if (!$auth->acl_get('a_server'))
{
return;
@@ -42,7 +32,7 @@ include($phpbb_root_path . 'includes/functions_user.'.$phpEx);
// Do we have general permissions?
if (!$auth->acl_get('a_server'))
{
- trigger_error($user->lang['NO_ADMIN']);
+ trigger_error('NO_ADMIN');
}
// Check and set some common vars
@@ -69,58 +59,38 @@ $safe_mode = (@ini_get('safe_mode') || @strtolower(ini_get('safe_mode')) == 'on'
$language_files = array('common', 'groups', 'mcp', 'memberlist', 'posting', 'search', 'ucp', 'viewforum', 'viewtopic', 'admin', 'help_bbcode', 'help_faq');
+$language_file_header = 'lang += array(
- 'LANGUAGE_PACKS_EXPLAIN' => 'Here you are able to install/remove language packs',
- 'LANGUAGE_PACK_NAME' => 'Name',
- 'LANGUAGE_PACK_LOCALNAME' => 'Local name',
- 'LANGUAGE_PACK_ISO' => 'ISO',
- 'LANGUAGE_PACK_USED_BY' => 'Used by',
- 'INSTALLED_LANGUAGE_PACKS' => 'Installed language packs',
- 'UNINSTALLED_LANGUAGE_PACKS'=> 'Uninstalled language packs',
- 'NO_UNINSTALLED_LANGUAGE_PACKS' => 'No uninstalled language packs',
- 'NO_LANG_ID' => 'You haven\'t specified a language pack',
- 'NO_REMOVE_DEFAULT_LANG' => 'You are not able to remove the default language pack. If you want to remove this language pack, change your boards default language first.',
- 'LANGUAGE_PACK_DELETED' => 'The language pack %s has been removed successfully. All users using this language have been resetted to the boards default language.',
- 'LANGUAGE_PACK_NOT_EXIST' => 'The selected language pack does not exist.',
- 'LANGUAGE_PACK_ALREADY_INSTALLED' => 'This language pack is already installed.',
- 'INVALID_LANGUAGE_PACK' => 'The selected language pack seems to be not valid. Please verify the language pack and upload it again if necessary.',
- 'LANGUAGE_PACK_INSTALLED' => 'The language pack %s has been successfully installed.',
- 'LANGUAGE_PACK_DETAILS' => 'Language Pack Details',
- 'WRONG_LANGUAGE_FILE' => 'Selected language file is invalid',
- 'LANGUAGE_DETAILS_UPDATED' => 'Language details successfully updated',
-
- 'LANG_ENGLISH_NAME' => 'English name',
- 'LANG_LOCAL_NAME' => 'Local name',
- 'LANG_ISO_CODE' => 'ISO Code',
- 'LANG_AUTHOR' => 'Language Pack Author',
-
- 'MISSING_LANGUAGE_FILE' => 'Missing Language File: %s',
- 'THOSE_MISSING_LANG_FILES' => 'The following language files are missing from the %s language folder',
- 'MISSING_LANG_VARIABLES' => 'Missing Language Variables',
- 'THOSE_MISSING_LANG_VARIABLES' => 'The following language variables are missing from the %s language pack',
-
- 'LANGUAGE_KEY' => 'Language Key',
- 'LANGUAGE_VARIABLE' => 'Language Variable',
- 'LANGUAGE_FILES' => 'Language Files',
- 'HELP_FILES' => 'Help Files',
- 'EMAIL_TEMPLATES' => 'Email Templates',
-
- 'LANGUAGE_ENTRIES' => 'Language Entries',
- 'LANGUAGE_ENTRIES_EXPLAIN' => 'Here you are able to change existing language pack entries or not already translated ones.',
- 'REMOVE_FROM_STORAGE_FOLDER'=> 'Remove from storage folder',
- 'FILE_CONTENTS' => 'File Contents',
- 'FILE_FROM_STORAGE' => 'File from storage folder',
- 'SUBMIT_AND_DOWNLOAD' => 'Submit and Download File',
- 'SELECT_DOWNLOAD_FORMAT' => 'Select download format',
- 'DOWNLOAD_AS' => 'Download as',
- 'DOWNLOAD' => 'Download',
-);
-
switch ($action)
{
case 'update_details':
@@ -199,29 +169,8 @@ switch ($action)
}
else if (strpos($cur_file, 'help_') === 0)
{
- $header = ' $value)
@@ -250,33 +199,16 @@ $help = array(
}
else
{
- $header = '
-
+
lang['LANGUAGE_PACKS']);
?>
lang['LANGUAGE_PACKS']; ?>
@@ -967,6 +900,9 @@ exit;
//
// FUNCTIONS
+/**
+* Compare two language files
+*/
function compare_language_files($source_lang, $dest_lang, $file_var)
{
global $phpbb_root_path, $phpEx;
@@ -1003,6 +939,9 @@ function compare_language_files($source_lang, $dest_lang, $file_var)
return $return_ary;
}
+/**
+* Print language entries
+*/
function print_language_entries(&$lang_ary, $key_prefix = '', $input_field = true)
{
foreach ($lang_ary as $key => $value)
@@ -1031,13 +970,54 @@ function print_language_entries(&$lang_ary, $key_prefix = '', $input_field = tru
else
{
?>
-
+
$value)
+ {
+?>
+
+
+
+
+
+
+ $_value)
+ {
+?>
+
+
+
+
+
+
+
+acl_get('a_user'))
{
- trigger_error($user->lang['NO_ADMIN']);
+ trigger_error('NO_ADMIN');
}
$user->add_lang('ucp');
$mode = (isset($_POST['add'])) ? 'create' : request_var('mode', '');
-$submit = (isset($_POST['submit'])) ? TRUE : FALSE;
-$create = (isset($_POST['create'])) ? TRUE : FALSE;
+$submit = (isset($_POST['submit'])) ? true : false;
+$create = (isset($_POST['create'])) ? true : false;
$error = $notify = array();
adm_page_header($user->lang['CUSTOM_PROFILE_FIELDS']);
@@ -136,7 +112,7 @@ if ($mode == 'create' || $mode == 'edit')
{
if (!$field_id)
{
- trigger_error('No field id specified');
+ trigger_error('NO_FIELD_ID');
}
$sql = 'SELECT l.*, f.*
@@ -150,7 +126,7 @@ if ($mode == 'create' || $mode == 'edit')
if (!$field_row)
{
- trigger_error('Profile field not found');
+ trigger_error('FIELD_NOT_FOUND');
}
$field_type = $field_row['field_type'];
@@ -175,8 +151,7 @@ if ($mode == 'create' || $mode == 'edit')
else
{
// We are adding a new field, define basic params
- $lang_options = array();
- $field_row = array();
+ $lang_options = $field_row = array();
$field_type = request_var('field_type', 0);
@@ -189,6 +164,7 @@ if ($mode == 'create' || $mode == 'edit')
'field_ident' => request_var('field_ident', ''),
'field_required' => 0,
'field_hide' => 0,
+ 'field_no_view' => 0,
'field_show_on_reg' => 0,
'lang_name' => '',
'lang_explain' => '',
@@ -199,10 +175,10 @@ if ($mode == 'create' || $mode == 'edit')
$s_hidden_fields = '';
}
- // $exclude contains the data that we gather in each ste
+ // $exclude contains the data that we gather in each step
$exclude = array(
1 => array('field_ident', 'lang_name', 'lang_explain'),
- 2 => array('field_length', 'pf_preview', 'field_maxlen', 'field_minlen', 'field_validation', 'field_novalue', 'field_default_value', 'field_required', 'field_show_on_reg', 'field_hide'),
+ 2 => array('field_length', 'pf_preview', 'field_maxlen', 'field_minlen', 'field_validation', 'field_novalue', 'field_default_value', 'field_required', 'field_show_on_reg', 'field_hide', 'field_no_view'),
3 => array('l_lang_name', 'l_lang_explain', 'l_lang_default_value', 'l_lang_options')
);
@@ -218,12 +194,13 @@ if ($mode == 'create' || $mode == 'edit')
$exclude[1][] = 'lang_options';
}
- $cp->vars['field_ident'] = request_var('field_ident', $field_row['field_ident']);
+ $cp->vars['field_ident'] = request_var('field_ident', $field_row['field_ident']);
$cp->vars['lang_name'] = request_var('field_ident', $field_row['lang_name']);
$cp->vars['lang_explain'] = request_var('lang_explain', $field_row['lang_explain']);
$cp->vars['lang_default_value'] = request_var('lang_default_value', $field_row['lang_default_value']);
$options = request_var('lang_options', '');
+
// If the user has submitted a form with options (i.e. dropdown field)
if (!empty($options))
{
@@ -235,8 +212,8 @@ if ($mode == 'create' || $mode == 'edit')
}
else if ($mode == 'edit')
{
- $cp->vars['lang_options'] = $lang_options;
- $error[] = 'You are not allowed to remove or add options within already existing profile fields';
+ // Changing the number of options? (We remove and re-create the option fields)
+ $cp->vars['lang_options'] = explode("\n", $options);
}
}
else
@@ -247,7 +224,7 @@ if ($mode == 'create' || $mode == 'edit')
// step 2
foreach ($exclude[2] as $key)
{
- if ($key == 'field_required' || $key == 'field_show_on_reg' || $key == 'field_hide')
+ if ($key == 'field_required' || $key == 'field_show_on_reg' || $key == 'field_hide' || $key == 'field_no_view')
{
// Are we creating or editing a field?
$var = (!$submit && $step == 1) ? $field_row[$key] : request_var($key, 0);
@@ -372,7 +349,6 @@ if ($mode == 'create' || $mode == 'edit')
// Check values for step 1
if ($cp->vars['field_ident'] == '')
{
- // Rename $user->lang['EMPTY_FIELD_NAME'] to $user->lang['EMPTY_FIELD_IDENT']
$error[] = $user->lang['EMPTY_FIELD_IDENT'];
}
@@ -390,7 +366,7 @@ if ($mode == 'create' || $mode == 'edit')
{
if (!sizeof($cp->vars['lang_options']))
{
- $error[] = 'No Entries defined';
+ $error[] = $user->lang['NO_FIELD_ENTRIES'];
}
}
}
@@ -545,6 +521,10 @@ if ($mode == 'create' || $mode == 'edit')