先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也先帝は天下を興す志半ばにして志半ばにして崩御されました。今、天下は三つに分かれ、益州は疲弊しており、まさに存亡の危機に瀕しております。しかしながら、宮中で職務に励む臣下や、外地で身を顧みず尽力する志士たちがいるのは、ひとえに先帝から受けた格別な恩義を思い、陛下に報いようとする志があるからです。今こそ陛下には広く臣下の意見に耳を傾け、先帝の遺徳を輝かせ、志士たちの士気を高めるべきです。決して自らを卑下したり、不適切な例えを用いて忠言の道を閉ざしたりしてはなりません。鍏堝笣鍒涗笟鏈崐鑰屼腑閬撳穿娈傦紝浠婂ぉ涓嬩笁鍒嗭紝鐩婂窞鐤插紛锛屾璇氬嵄鎬ュ瓨浜′箣绉嬩篃銆傜劧渚嶅崼涔嬭嚕涓嶆噲浜庡唴锛屽繝蹇椾箣澹繕韬簬澶栬€咃紝鐩栬拷鍏堝笣涔嬫畩閬囷紝娆叉姤涔嬩簬闄涗笅涔熴€傝瘹瀹滃紑寮犲湥鍚紝浠ュ厜鍏堝笣閬楀痉锛屾仮寮樺織澹箣姘旓紝涓嶅疁濡勮嚜鑿茶杽锛屽紩鍠诲け涔夛紝浠ュ蹇犺皬涔嬭矾涔🌌 SpectraShell

🌌 SpectraShell

Current path: usr/local/cpanel/scripts/



⬆️ Go up: /usr/local/cpanel

📄 Viewing: locale_export

#!/usr/local/cpanel/3rdparty/bin/perl

#                                      Copyright 2024 WebPros International, LLC
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited.

use strict;
use warnings;
use Getopt::Param                  ();
use Cpanel::Locale                 ();
use Cpanel::Locale::Utils::Display ();
use Cpanel::Locale::Utils::XML     ();
use Cpanel::SafeDir::MK            ();

my $prm = Getopt::Param->new(
    {
        'no_args_help' => 1,
        'help_coderef' => sub {
            print <<"END_USAGE";
$0 --locale={locale_tag} [--locale=… --locale=… …] [--quiet] [--export-{locale_tag}={path}]  [--dumper-format] [--exclude-bracketed-strings] [--no-fallback]

Export locales from the Locale database in XML format.

Options:
  --help                       Show this help screen.
  --quiet                      Show less status output than normal. This also suppresses warnings related to locale string syntax.
  --locale={locale_tag}        Specify a locale to export. You may pass the flag multiple times in order to export multiple locales.
                               This creates files in a default location that `/usr/local/cpanel/scripts/locale_import --locale={locale_tag}` knows to use.
  --export-{locale_tag}={file} Save the export of the locale {locale_tag} to {file} instead of the standard place.
                               This creates files that can be imported with `/usr/local/cpanel/scripts/locale_import --import={file}`
  --dumper-format              Export into the old format instead of XLIFF (will force an .xml extension on any --export-XX paths)
  --recover                    Try to recover on encountering an ill-formed phrase.
  --exclude-bracketed-strings  Exclude strings that contain bracket notation, which may cause problems on some translation platforms.
  --exclude-plurals            Exclude the plurality translation units in the XLIFF output.
  --no-fallback                Do not use original strings as fallback. If no translation is available, leave target blank.

The XML files that this script creates can be imported via /usr/local/cpanel/scripts/locale_import

If there were problems exporting the script will exit with an error status. To examine the details of what happened do not use --quiet.
END_USAGE
            exit;
        },
    }
);

my $verbose = $prm->get_param('quiet') ? 0 : 1;
my $options = {
    'recover'         => ( $prm->get_param('recover')                   ? 1 : 0 ),
    'no-brackets'     => ( $prm->get_param('exclude-bracketed-strings') ? 1 : 0 ),
    'no-fallback'     => ( $prm->get_param('no-fallback')               ? 1 : 0 ),
    'exclude-plurals' => ( $prm->get_param('exclude-plurals')           ? 1 : 0 ),
    'no-warn'         => ( $verbose                                     ? 0 : 1 ),
};
my $count  = 0;
my $failed = 0;
my $locale = Cpanel::Locale->get_handle();

my %locale_lookup;

@locale_lookup{ Cpanel::Locale::Utils::Display::get_locale_list($locale) } = ();
my $euid_home;
foreach my $loc ( $prm->get_param('locale') ) {
    $count++;

    if ( !exists $locale_lookup{$loc} ) {
        print "Invalid locale\n" if $verbose;
        $failed++;
        next;
    }

    my $path = $prm->get_param('dumper-format') ? "/var/cpanel/locale/export/$loc.xml" : "/var/cpanel/locale/export/$loc.xlf";
    if ( $prm->get_param("export-$loc") ) {
        $path = $prm->get_param("export-$loc");
        $path =~ s/\.[^.]+$//;    # strip any existing extension …
        if ( $prm->get_param('dumper-format') ) {
            $path .= '.xml';      # … replace it w/ .xml
        }
        else {
            $path .= '.xlf';      # … replace it w/ .xlf
        }
    }

    # expand ~/ that was treated as a string and not expanded by the shell before being put in @ARGV
    if ( substr( $path, 0, 2 ) eq '~/' ) {
        $euid_home ||= ( getpwuid($>) )[7];    # only look it up if needed, and only look it up one time
        substr( $path, 0, 2, "$euid_home/" );
    }

    my ( $head, @dir ) = reverse( split( /\//, $path ) );
    my $dir = join( '/', reverse(@dir) );
    if ( $dir && !-d $dir ) {
        if ( !Cpanel::SafeDir::MK::safemkdir($dir) ) {
            print "Could not create path '$dir': $!\n" if $verbose;
            $failed++;
            next;
        }
    }

    if ( -e $path ) {
        print "Replacing existing export file '$path'\n" if $verbose;
        unlink($path);
        if ( -e $path ) {
            print "Could not unlink '$path': $!\n" if $verbose;
            $failed++;
            next;
        }
    }

    my $error = '';

    if ( Cpanel::Locale::Utils::XML::locale_to_xml( $path, $loc, \$error, $options ) ) {
        print "$error'$loc' has been exported to '$path'.\n" if $verbose;
    }
    else {
        print "Failed to create XML file for locale '$loc': $error\n" if $verbose;
        $failed++;
        next;
    }
}

if ( !$count || $failed ) {
    if ($verbose) {
        if ($failed) {
            print "$failed out of $count failed to export.\n";
        }
        elsif ( !$count ) {
            print "No locales to export.\n";
        }
    }
    exit 1;
}


📁