diff options
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/Config/Core.pm | 2 | ||||
-rw-r--r-- | Bugzilla/Install/Filesystem.pm | 15 | ||||
-rw-r--r-- | Bugzilla/Install/Util.pm | 14 | ||||
-rw-r--r-- | Bugzilla/Template.pm | 10 |
4 files changed, 31 insertions, 10 deletions
diff --git a/Bugzilla/Config/Core.pm b/Bugzilla/Config/Core.pm index a0aca9c9b..b307dd7f5 100644 --- a/Bugzilla/Config/Core.pm +++ b/Bugzilla/Config/Core.pm @@ -56,7 +56,7 @@ sub get_param_list { { name => 'docs_urlbase', type => 't', - default => 'docs/html/', + default => 'docs/%lang%/html/', checker => \&check_url }, diff --git a/Bugzilla/Install/Filesystem.pm b/Bugzilla/Install/Filesystem.pm index a24dc28ca..55a5abce9 100644 --- a/Bugzilla/Install/Filesystem.pm +++ b/Bugzilla/Install/Filesystem.pm @@ -117,8 +117,9 @@ sub FILESYSTEM { 'install-module.pl' => { perms => $owner_executable }, 'docs/makedocs.pl' => { perms => $owner_executable }, - 'docs/rel_notes.txt' => { perms => $ws_readable }, - 'docs/README.docs' => { perms => $owner_readable }, + 'docs/style.css' => { perms => $ws_readable }, + 'docs/*/rel_notes.txt' => { perms => $ws_readable }, + 'docs/*/README.docs' => { perms => $owner_readable }, "$datadir/bugzilla-update.xml" => { perms => $ws_writeable }, "$datadir/params" => { perms => $ws_writeable }, "$datadir/mailer.testfile" => { perms => $ws_writeable }, @@ -168,17 +169,17 @@ sub FILESYSTEM { dirs => $ws_dir_readable }, t => { files => $owner_readable, dirs => $owner_dir_readable }, - 'docs/html' => { files => $ws_readable, + 'docs/*/html' => { files => $ws_readable, dirs => $ws_dir_readable }, - 'docs/pdf' => { files => $ws_readable, + 'docs/*/pdf' => { files => $ws_readable, dirs => $ws_dir_readable }, - 'docs/txt' => { files => $ws_readable, + 'docs/*/txt' => { files => $ws_readable, dirs => $ws_dir_readable }, - 'docs/images' => { files => $ws_readable, + 'docs/*/images' => { files => $ws_readable, dirs => $ws_dir_readable }, 'docs/lib' => { files => $owner_readable, dirs => $owner_dir_readable }, - 'docs/xml' => { files => $owner_readable, + 'docs/*/xml' => { files => $owner_readable, dirs => $owner_dir_readable }, ); diff --git a/Bugzilla/Install/Util.pm b/Bugzilla/Install/Util.pm index 9aeeca486..4c3754964 100644 --- a/Bugzilla/Install/Util.pm +++ b/Bugzilla/Install/Util.pm @@ -38,6 +38,7 @@ our @EXPORT_OK = qw( get_version_and_os indicate_progress install_string + include_languages template_include_path vers_cmp get_console_locale @@ -123,7 +124,7 @@ sub install_string { return $string_template; } -sub template_include_path { +sub include_languages { my ($params) = @_; $params ||= {}; @@ -171,7 +172,12 @@ sub template_include_path { if (!grep($_ eq 'en', @usedlanguages)) { push(@usedlanguages, 'en'); } + + return @usedlanguages; +} +sub template_include_path { + my @usedlanguages = include_languages(@_); # Now, we add template directories in the order they will be searched: # First, we add extension template directories, because extension templates @@ -516,6 +522,12 @@ Each extension has its own directory. Note that languages are sorted by the user's preference (as specified in their browser, usually), and extensions are sorted alphabetically. +=item C<include_languages> + +Used by L<Bugzilla::Template> to determine the languages' list which +are compiled with the browser's I<Accept-Language> and the languages +of installed templates. + =item C<vers_cmp> =over diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm index b35491f78..8a322fae5 100644 --- a/Bugzilla/Template.pm +++ b/Bugzilla/Template.pm @@ -36,7 +36,7 @@ use strict; use Bugzilla::Constants; use Bugzilla::Install::Requirements; -use Bugzilla::Install::Util qw(install_string template_include_path); +use Bugzilla::Install::Util qw(install_string template_include_path include_languages); use Bugzilla::Util; use Bugzilla::User; use Bugzilla::Error; @@ -729,6 +729,14 @@ sub create { # Allow templates to access the "corect" URLBase value 'urlbase' => sub { return Bugzilla::Util::correct_urlbase(); }, + # Allow templates to access docs url with users' preferred language + 'docs_urlbase' => sub { + my ($language) = include_languages(); + my $docs_urlbase = Bugzilla->params->{'docs_urlbase'}; + $docs_urlbase =~ s/\%lang\%/$language/; + return $docs_urlbase; + }, + # These don't work as normal constants. DB_MODULE => \&Bugzilla::Constants::DB_MODULE, REQUIRED_MODULES => |