晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /scripts/ |
Upload File : |
#!/usr/local/cpanel/3rdparty/bin/perl
# cpanel - scripts/locale_info Copyright 2022 cPanel, L.L.C.
# 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 Cpanel::Locale ();
use Cpanel::SafeDir::Read ();
use Getopt::Param::Tiny ();
use Cpanel::Themes::Get ();
use Cpanel::YAML::Syck ();
my $prm = Getopt::Param::Tiny->new(
{
'no_args_help' => 1,
'help_coderef' => sub {
print <<"END_HELP";
Usage: $0 {Options}
Provide information about existing cPanel-based locales.
Options:
--help This help screen
--list List available locales (aside from default's aliases en_us and i_default)
--locale={locale_tag} Show information about the locale specified by {locale_tag} (e.g. --locale=en)
--file Show the given locale's file information
--theme={theme_name} Same as option "--file" but in the context of the given theme specified by {theme_name} (e.g. --theme=x3)
--3rdparty Show the given locale's 3rdparty mapping
END_HELP
exit;
},
}
);
my $locale = Cpanel::Locale->get_handle();
if ( $prm->param('list') ) {
print YAML::Syck::Dump( [ sort 'en', $locale->list_available_locales() ] );
}
else {
my $theme = '';
if ( $prm->param('theme') ) {
# this should be a method and also used in locale compiler
my @theme_list;
foreach my $theme_dir ( Cpanel::SafeDir::Read::read_dir('/usr/local/cpanel/base/frontend') ) {
next if $theme_dir =~ m/^\./;
next if -l '/usr/local/cpanel/base/frontend/' . $theme_dir;
next if !Cpanel::Themes::Get::is_usable_theme($theme_dir);
push @theme_list, $theme_dir;
}
if ( grep { $prm->param('theme') eq $_ } @theme_list ) {
$theme = $prm->param('theme');
$prm->param( 'file', 1 ); # get into file context
}
else {
print $locale->maketext( qq{Invalid value for \xE2\x80\x9C[_1]\xE2\x80\x9D.}, '--theme' ) . "\n";
print $prm->help();
exit 1;
}
}
my $loc = $prm->param('locale') || ''; # do not default to 'en', promote explicitly asking for what you want
my $working_locale;
if ( $loc eq 'en' || $loc eq 'en_us' || $loc eq 'i_default' ) {
local $Cpanel::CPDATA{'RS'} = $theme; # TODO: This doesn't seem to work. It works below and from CLI though ...
$working_locale = Cpanel::Locale->get_handle('en_us');
}
else {
if ( $loc && grep { $loc eq $_ } $locale->list_available_locales() ) {
local $Cpanel::CPDATA{'RS'} = $theme;
$working_locale = Cpanel::Locale->get_handle($loc);
}
else {
print $locale->maketext( qq{Invalid value for \xE2\x80\x9C[_1]\xE2\x80\x9D.}, '--locale' ) . "\n";
print $prm->help();
exit 1;
}
}
if ( $prm->param('3rdparty') ) {
for my $third_party ( $working_locale->cpanel_get_3rdparty_list() ) {
print "$third_party: " . $working_locale->cpanel_get_3rdparty_lang($third_party) . "\n";
}
}
elsif ( $prm->param('file') ) {
# TODO: one or more --key == "info" about key (does not exist, has this value, etc)
print 'CDB File: ' . $working_locale->get_cdb_file_path() . "\n";
my $class = $working_locale->get_language_class();
no strict 'refs';
print "Version: ${$class . '::VERSION'}\n";
print "Encoding: ${$class . '::Encoding'}\n";
print "Build info:\n" . $working_locale->maketext('__FORENSIC') . "\n"; ## no extract maketext
}
else {
require Cpanel::Locale::Utils::Display;
print YAML::Syck::Dump( Cpanel::Locale::Utils::Display::get_locale_menu_hashref($working_locale) );
}
}