أداة تحويل من الصينية إلى Pinyin تعتمد على قاموس بيانات mozillazg/pinyin، وهو حل أكثر دقة لتحويل الأحرف الصينية إلى Pinyin ويدعم الأحرف متعددة الأصوات.
مثل مشروعي؟ انقر هنا لدعم لي
التثبيت باستخدام الملحن:
composer require overtrue/pinyin:^5.0
باستثناء طريقة الحصول على الحرف الأول، تدعم جميع الطرق معلمة ثانية تستخدم لتحديد تنسيق بينيين، والقيم الاختيارية هي:
symbol
النغمة (الافتراضي)، مثل pīn yīn
none
لا يخرج بينيين، مثل pin yin
number
، مثل pin1 yin1
باستثناء permalink
الذي يُرجع سلسلة، تُرجع جميع الطرق الأخرى نوع المجموعة OvertruePinyinCollection
:
use Overtrue Pinyin Pinyin ;
$ pinyin = Pinyin:: sentence ( '你好,世界' );
يمكنك الوصول إلى محتوى المجموعة عبر:
echo $ pinyin ; // nǐ hǎo shì jiè
// 直接将对象转成字符串
$ string = ( string ) $ pinyin ; // nǐ hǎo shì jiè
$ pinyin -> toArray (); // ['nǐ', 'hǎo', 'shì', 'jiè']
// 直接使用索引访问
$ pinyin [ 0 ]; // 'nǐ'
// 使用函数遍历
$ pinyin -> map ( ' ucfirst ' ); // ['Nǐ', 'Hǎo', 'Shì', 'Jiè']
// 拼接为字符串
$ pinyin -> join ( ' ' ); // 'nǐ hǎo shì jiè'
$ pinyin -> join ( ' - ' ); // 'nǐ-hǎo-shì-jiè'
// 转成 json
$ pinyin -> toJson (); // '["nǐ","hǎo","shì","jiè"]'
json_encode ( $ pinyin ); // '["nǐ","hǎo","shì","jiè"]'
use Overtrue Pinyin Pinyin ;
echo Pinyin:: sentence ( '带着希望去旅行,比到达终点更美好' );
// dài zhe xī wàng qù lǚ xíng , bǐ dào dá zhōng diǎn gèng měi hǎo
// 去除声调
echo Pinyin:: sentence ( '带着希望去旅行,比到达终点更美好' , ' none ' );
// dai zhe xi wang qu lv xing , bi dao da zhong dian geng mei hao
// 保留所有非汉字字符
echo Pinyin:: fullSentence ( 'ル是片假名,π是希腊字母' , ' none ' );
// ル shi pian jia ming ,π shi xi la zi mu
تُستخدم عادةً لروابط المقالات وما إلى ذلك، ويمكنك استخدام طريقة permalink
للحصول على سلسلة بينيين:
echo Pinyin:: permalink ( '带着希望去旅行' ); // dai-zhe-xi-wang-qu-lyu-xing
echo Pinyin:: permalink ( '带着希望去旅行' , ' . ' ); // dai.zhe.xi.wang.qu.lyu.xing
تُستخدم عادةً لإنشاء فهارس للبحث، ويمكنك استخدام التابع abbr
للتحويل:
Pinyin:: abbr ( '带着希望去旅行' ); // ['d', 'z', 'x', 'w', 'q', 'l', 'x']
echo Pinyin:: abbr ( '带着希望去旅行' )-> join ( ' - ' ); // d-z-x-w-q-l-x
echo Pinyin:: abbr ( '你好2018! ' )-> join ( '' ); // nh2018
echo Pinyin:: abbr ( ' Happy New Year! 2018! ' )-> join ( '' ); // HNY2018
// 保留原字符串的英文单词
echo Pinyin:: abbr ( ' CGV电影院' , false , true )-> join ( '' ); // CGVdyy
الأحرف الأولى
تحويل الحرف الأول كلقب والباقي إلى كلمات عادية:
Pinyin:: nameAbbr ( '欧阳' ); // ['o', 'y']
echo Pinyin:: nameAbbr ( '单单单' )-> join ( ' - ' ); // s-d-d
يختلف نطق لقب الاسم إلى حد ما عن نطق الأحرف العادية، على سبيل المثال، النطق الشائع لـ "dan" هو dan
، ولكن عند استخدامه كلقب، يتم نطقه shan
.
Pinyin:: name ( '单某某' ); // ['shàn', 'mǒu', 'mǒu']
Pinyin:: name ( '单某某' , ' none ' ); // ['shan', 'mou', 'mou']
Pinyin:: name ( '单某某' , ' none ' )-> join ( ' - ' ); // shan-mou-mou
وفقًا للوائح الوطنية المتعلقة بالتذكير بأن الحروف ü (Lu وLu وLu وLu وNv وما إلى ذلك) الخاصة بالاسم الموجود في وثيقة سفر جواز السفر الصيني تتم كتابتها بشكل موحد كـ YU، قم بتحويل ü
إلى yu
:
Pinyin:: passportName ( '吕小布' ); // ['lyu', 'xiao', 'bu']
Pinyin:: passportName ( '女小花' ); // ['nyu', 'xiao', 'hua']
Pinyin:: passportName ( '律师' ); // ['lyu', 'shi']
القيمة المرجعة للأحرف متعددة الأصوات هي مجموعة من المصفوفات الترابطية افتراضيًا، يتم إرجاع جميع النطق بعد إلغاء البيانات المكررة:
$ pinyin = Pinyin:: polyphones ( '重庆' );
$ pinyin [ '重' ]; // ["zhòng", "chóng", "tóng"]
$ pinyin [ '庆' ]; // ["qìng"]
$ pinyin -> toArray ();
// [
// "重": ["zhòng", "chóng", "tóng"],
// "庆": ["qìng"]
// ]
إذا كنت لا تريد إزالة التكرارات، يمكنك إعادتها في شكل مصفوفة:
$ pinyin = Pinyin:: polyphones ( '重庆重庆' , Converter:: TONE_STYLE_SYMBOL , true );
// or
$ pinyin = Pinyin:: polyphonesAsArray ( '重庆重庆' , Converter:: TONE_STYLE_SYMBOL );
$ pinyin -> toArray ();
// [
// ["重" => ["zhòng", "chóng", "tóng"]],
// ["庆" => ["qìng"]],
// ["重" => ["zhòng", "chóng", "tóng"]],
// ["庆" => ["qìng"]]
// ]
كما هو الحال مع الأحرف متعددة الألحان، فإن القيمة المرجعة للحرف الواحد عبارة عن سلسلة سيتم ضبط الأحرف المتعددة الألحان وفقًا لتكرار الحرف للحصول على الأصوات الشائعة:
$ pinyin = Pinyin:: chars ( '重庆' );
echo $ pinyin [ '重' ]; // "zhòng"
echo $ pinyin [ '庆' ]; // "qìng"
$ pinyin -> toArray ();
// [
// "重": "zhòng",
// "庆": "qìng"
// ]
تحذير
عند معالجة كلمات مفردة، نظرًا لأن الكلمات متعددة الألحان تحصل على أصوات شائعة من جدول تكرار الكلمات، قد تحدث مواقف غير صحيحة في بيئات الكلمات. يوصى باستخدام معالجة الكلمات متعددة الألحان.
يرجى الرجوع إلى حالات الاختبار لمزيد من الاستخدام.
وفقًا للوائح اللجنة الوطنية المعنية باللغات والشخصيات، فإن lv
و lyu
و lǚ
كلها صحيحة، ولكن lv
هي الأكثر استخدامًا، لذلك يتم استخدام lv
افتراضيًا إذا كنت بحاجة إلى استخدام أخرى، فيمكنك تمريرها في أثناء التهيئة:
echo Pinyin:: sentence ( '旅行' );
// lǚ xíng
echo Pinyin:: sentence ( '旅行' , ' none ' );
// lv xing
echo Pinyin:: yuToYu ()-> sentence ( '旅行' , ' none ' );
// lyu xing
echo Pinyin:: yuToU ()-> sentence ( '旅行' , ' none ' );
// lu xing
echo Pinyin:: yuToV ()-> sentence ( '旅行' , ' none ' );
// lv xing
تحذير
صالح فقط عندما يكون نمط Pinyin في وضع غير
none
.
يمكنك استخدام سطر الأوامر لتحويل بينيين:
php ./bin/pinyin 带着希望去旅行 --method=sentence --tone-style=symbol
# dài zhe xī wàng qù lǚ xíng
لمزيد من طرق الاستخدام، يمكنك الاطلاع على وثائق المساعدة:
php ./bin/pinyin --help
# Usage:
# ./pinyin [chinese] [method] [options]
# Options:
# -j, --json 输出 JSON 格式.
# -c, --compact 不格式化输出 JSON.
# -m, --method=[method] 转换方式,可选:sentence/sentenceFull/permalink/abbr/nameAbbr/name/passportName/phrase/polyphones/chars.
# --no-tone 不使用音调.
# --tone-style=[style] 音调风格,可选值:symbol/none/number, default: none.
# -h, --help 显示帮助.
الحزمة المستقلة موجودة هنا: overtrue/laravel-pinyin
إذا كانت لديك هذه الحاجة، يمكنك أيضًا التعرف على حزمتي الأخرى: overtrue/php-opencc
مرحبا بكم في تقديم التعليقات وتحسين المفردات:
إذا أعجبك مشروعي وترغب في دعمه، انقر هنا
شكرًا جزيلاً لشركة Jetbrains على توفير ترخيص لي للعمل في هذا المشروع وغيره من المشاريع مفتوحة المصدر.
هل تتساءل عن كيفية إنشاء حزمة امتداد PHP من البداية؟
يرجى الانتباه إلى الدورة التدريبية العملية الخاصة بي، حيث سأشارك بعض خبرتي في تطوير الامتدادات - "البرنامج التعليمي العملي لحزمة PHP Extension Pack - من البداية إلى الإصدار"
معهد ماساتشوستس للتكنولوجيا