.\" $XTermId: luit.man,v 1.41 2024/01/02 21:29:30 tom Exp $ .\" --------------------------------------------------------------------------- .\" Copyright 2006-2021,2024 by Thomas E. Dickey .\" Copyright (c) 2001 by Juliusz Chroboczek .\" .\" Permission is hereby granted, free of charge, to any person obtaining a .\" copy of this software and associated documentation files (the "Software"), .\" to deal in the Software without restriction, including without limitation .\" the rights to use, copy, modify, merge, publish, distribute, sublicense, .\" and/or sell copies of the Software, and to permit persons to whom the .\" Software is furnished to do so, subject to the following conditions: .\" .\" The above copyright notice and this permission notice shall be included in .\" all copies or substantial portions of the Software. .\" .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR .\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, .\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL .\" THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER .\" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING .\" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER .\" DEALINGS IN THE SOFTWARE. .\" --------------------------------------------------------------------------- .\" Escape single quotes in literal strings from groff's Unicode transform. .TH LUIT 1 "X Window System" .ie \n(.g \{\ .ds `` \(lq .ds '' \(rq .ds ' \(aq .\} .el \{\ .ie t .ds `` `` .el .ds `` "" .ie t .ds '' '' .el .ds '' "" .ie t .ds ' \(aq .el .ds ' ' .\} .de bP .ie n .IP \(bu 4 .el .IP \(bu 2 .. .SH "نام (NAME)" luit \- فیلتر تبدیل کدگذاری کاراکترها بین برنامه‌ها و شبیه‌سازهای ترمینال UTF-8 .SH "خلاصه دستور (SYNOPSIS)" .B luit [ .I گزینه‌ها ] [ .B \-\- ] [ .I برنامه [ .I آرگومان‌ها ] ] .\" *************************************************************************** .SH "توضیحات (DESCRIPTION)" .B Luit یک فیلتر است که می‌تواند میان یک برنامه دلخواه و یک شبیه‌ساز ترمینال UTF-8 اجرا شود. این ابزار خروجی برنامه را از کدگذاری محلی (locale) به UTF-8 تبدیل می‌کند و ورودی ترمینال را از UTF-8 به کدگذاری محلی تغییر می‌دهد. .PP \fBLuit\fP ورودی خود را از فرآیند فرزند (یعنی برنامه‌ای که در ترمینال در حال اجراست) می‌خواند. \fBLuit\fP خروجی خود را در ترمینال می‌نویسد. این دو (ورودی و خروجی) می‌توانند کدگذاری‌های متفاوتی داشته باشند. .PP یک برنامه همچنین می‌تواند با استفاده از توالی‌های گریز استاندارد ISO\ 2022 و ISO\ 6429، تغییر به یک کدگذاری خروجی دیگر را درخواست کند. استفاده از این ویژگی توصیه نمی‌شود: برنامه‌های چندزبانه باید اصلاح شوند تا مستقیماً خروجی UTF-8 تولید کنند. .PP .B Luit معمولاً به‌صورت خودکار و شفاف توسط شبیه‌ساز ترمینال فراخوانی می‌شود. برای اطلاعات درباره اجرای .B luit از خط فرمان، بخش «مثال‌ها» را در ادامه ببینید. .\" *************************************************************************** .SH "گزینه‌ها (OPTIONS)" .TP .B \-V چاپ نسخه \fBluit\fP و خروج. .TP .BI \-alias " filename" فایل نام‌های مستعار لوکال .br (پیش‌فرض: /usr/share/X11/locale/locale.alias). .TP .BI \-argv0 " name" تنظیم نام فرزند (همان‌طور که در argv[0] ارسال می‌شود). .TP .B \-c عمل کردن به‌عنوان یک مبدل ساده از ورودی استاندارد به خروجی استاندارد. .TP .BI \-encoding " encoding" تنظیم .B luit برای استفاده از .I encoding به‌جای کدگذاری لوکال جاری. .TP .BI \-g0 " charset" تنظیم مجموعه نویسه خروجی انتخاب‌شده اولیه در G0. مقدار پیش‌فرض به لوکال بستگی دارد، اما معمولاً .B ASCII است. .TP .BI \-g1 " charset" تنظیم مجموعه نویسه خروجی انتخاب‌شده اولیه در G1. مقدار پیش‌فرض به لوکال بستگی دارد. .TP .BI \-g2 " charset" تنظیم مجموعه نویسه خروجی انتخاب‌شده اولیه در G2. مقدار پیش‌فرض به لوکال بستگی دارد. .TP .BI \-g3 " charset" تنظیم مجموعه نویسه خروجی انتخاب‌شده اولیه در G3. مقدار پیش‌فرض به لوکال بستگی دارد. .TP .BI \-gl " gn" تنظیم انتساب اولیه GL در خروجی. آرگومان باید یکی از .BR g0 ، .BR g1 ، .B g2 یا .B g3 باشد. مقدار پیش‌فرض به لوکال بستگی دارد، اما معمولاً .B g0 است. .TP .BI \-gr " gk" تنظیم انتساب اولیه GR در خروجی. مقدار پیش‌فرض به لوکال بستگی دارد و معمولاً .B g2 است به‌جز برای لوکال‌های EUC که در آن‌ها .B g1 است. .TP .B \-h نمایش پیام نحوه استفاده و گزینه‌ها در خروجی استاندارد و خروج. .TP .BI \-ilog " filename" ثبت تمام بایت‌های دریافت شده از فرزند در .IR filename . .TP .B \-k7 تولید نویسه‌های ۷-بیتی برای ورودی صفحه‌کلید. .TP .BI \-kg0 " charset" تنظیم مجموعه نویسه ورودی انتخاب‌شده اولیه در G0. مقدار پیش‌فرض به لوکال بستگی دارد، اما معمولاً .B ASCII است. .TP .BI \-kg1 " charset" تنظیم مجموعه نویسه ورودی انتخاب‌شده اولیه در G1. مقدار پیش‌فرض به لوکال بستگی دارد. .TP .BI \-kg2 " charset" تنظیم مجموعه نویسه ورودی انتخاب‌شده اولیه در G2. مقدار پیش‌فرض به لوکال بستگی دارد. .TP .BI \-kg3 " charset" تنظیم مجموعه نویسه ورودی انتخاب‌شده اولیه در G3. مقدار پیش‌فرض به لوکال بستگی دارد. .TP .BI \-kgl " gn" تنظیم انتساب اولیه GL در ورودی. آرگومان باید یکی از .BR g0 ، .BR g1 ، .B g2 یا .B g3 باشد. مقدار پیش‌فرض به لوکال بستگی دارد، اما معمولاً .B g0 است. .TP .BI \-kgr " gk" تنظیم انتساب اولیه GR در ورودی. مقدار پیش‌فرض به لوکال بستگی دارد و معمولاً .B g2 است به‌جز برای لوکال‌های EUC که در آن‌ها .B g1 است. .TP .B \-kls تولید شیفت‌های قفل‌کننده (SO/SI) برای ورودی صفحه‌کلید. .TP .B +kss غیرفعال کردن تولید شیفت‌های تکی برای ورودی صفحه‌کلید. .TP .B +kssgr استفاده از کدهای GL پس از یک شیفت تکی برای ورودی صفحه‌کلید. به‌طور پیش‌فرض، هنگام تولید ورودی صفحه‌کلید هشت‌بیتی، کدهای GR پس از یک شیفت تکی تولید می‌شوند. .TP .B \-list فهرست کردن مجموعه نویسه‌ها و کدگذاری‌های پشتیبانی‌شده و سپس خروج. \fBLuit\fP برای این کار از جدول‌های داخلی خود استفاده می‌کند که بر پایه کتابخانه \fIfontenc\fP هستند. .TP .B \-list\-builtin فهرست کردن کدگذاری‌های توکار (built-in) که به‌عنوان جایگزین پشتیبان در صورت نبود داده‌ها از \fIiconv\fP یا \fIfontenc\fP استفاده می‌شوند. .IP این گزینه وابسته به پیکربندی \fBluit\fP برای استفاده از \fIiconv\fP است، زیرا کتابخانه \fIfontenc\fP فهرستی از کدگذاری‌های توکار ارائه نمی‌دهد. .TP .B \-list\-fontenc فهرست کردن کدگذاری‌های ارائه‌شده توسط فایل‌های \*(``.enc\*('' که در اصل همراه با کتابخانه \fIfontenc\fP توزیع شده‌اند. .TP .B \-list\-iconv فهرست کردن کدگذاری‌ها و لوکال‌های پشتیبانی‌شده توسط کتابخانه \fIiconv\fP. \fBLuit\fP جدول‌های داخلی نام‌های \fIfontenc\fP خود را با کدگذاری‌های \fIiconv\fP تطبیق می‌دهد. .IP برای ساده‌تر شدن اسکریپت‌نویسی، .B luit فاصله‌ها، خط‌های زیرین (underscore) و خط‌های تیره اسکی (dash) گنجانده‌شده در نام‌ها را نادیده می‌گیرد. .B Luit همچنین بزرگی و کوچکی حروف را هنگام تطبیق نام‌های مجموعه نویسه و کدگذاری نادیده می‌گیرد. .IP این گزینه فقط کدگذاری‌هایی را فهرست می‌کند که با لوکال‌های پشتیبانی‌شده در سیستم‌عامل فعلی مرتبط هستند. برنامه پرتابل \fIiconv\fP فهرستی از کدگذاری‌های پشتیبانی‌شده خود را با گزینه \fB\-l\fP ارائه می‌دهد. سایر پیاده‌سازی‌ها ممکن است قابلیت‌های مشابهی داشته باشند. هیچ فراخوانی کتابخانه‌ای پرتابلی وجود ندارد که یک برنامه بتواند از طریق آن به همین اطلاعات دست یابد. .TP .BI \-olog " filename" ثبت تمام بایت‌های ارسال‌شده به شبیه‌ساز ترمینال در .IR filename . .TP .B +ols غیرفعال کردن تفسیر شیفت‌های قفل‌کننده در خروجی برنامه. .TP .B +osl غیرفعال کردن تفسیر توالی‌های انتخاب مجموعه نویسه در خروجی برنامه. .TP .B +oss غیرفعال کردن تفسیر شیفت‌های تکی در خروجی برنامه. .TP .B +ot غیرفعال کردن تفسیر تمام توالی‌ها و ارسال دست‌نخورده تمام توالی‌های خروجی برنامه به ترمینال. این ممکن است به نتایج جالبی منجر شود. .TP .B \-p هنگام راه‌اندازی، ایجاد یک دست‌تکانی (handshake) میان فرآیندهای والد و فرزند. این گزینه برای برخی سیستم‌های قدیمی‌تر، برای مثال جهت کپی موفقیت‌آمیز تنظیمات ترمینال به شبه‌ترمینال (pty) مورد نیاز است. .TP .BI \-prefer " list" تنظیم اولویت ترتیب جستجو برای اطلاعات مجموعه نویسه. پارامتر یک فهرست از کلمات کلیدی است که با کاما از هم جدا شده‌اند. ترتیب پیش‌فرض (شامل تمام کلمات کلیدی) عبارت است از: .RS .IP fontenc,builtin,iconv,posix .RE .IP ترتیب پیش‌فرض ابتدا از \fBfontenc\fP استفاده می‌کند زیرا به \fBluit\fP اجازه می‌دهد بسیار سریع‌تر (حدود ۰٫۱ ثانیه) نسبت به استفاده از \fBiconv\fP برای کدگذاری‌های پیچیده مانند eucJP راه‌اندازی شود. با این حال، ممکن است متوجه شوید که پیاده‌سازی iconv دقیق‌تر یا کامل‌تر است. در این حالت، می‌توانید از گزینه \fB\-show-iconv\fP برای دریافت یک فایل متنی استفاده کنید که بتوان از آن به‌عنوان یک کدگذاری با پیکربندی \fBfontenc\fP بهره برد. .IP این گزینه وابسته به پیکربندی \fBluit\fP برای استفاده از \fIiconv\fP است، زیرا کتابخانه \fIfontenc\fP این انتخاب را ارائه نمی‌دهد. .TP .BI \-show\-builtin " encoding" نمایش یک کدگذاری توکار، برای مثال از یک فایل \*(``.enc\*('' با استفاده از قالب \*(``.enc\*(''. .IP این گزینه وابسته به پیکربندی \fBluit\fP برای استفاده از \fIiconv\fP است، زیرا کتابخانه \fIfontenc\fP فهرستی از کدگذاری‌های توکار ارائه نمی‌دهد. .TP .BI \-show\-fontenc " encoding" نمایش یک کدگذاری مشخص، برای مثال از یک فایل \*(``.enc\*('' با استفاده از قالب \*(``.enc\*(''. اگر \fBluit\fP برای استفاده از کتابخانه \fIfontenc\fP پیکربندی شده باشد، اطلاعات را با استفاده از آن کتابخانه به دست می‌آورد. در غیر این صورت \fBluit\fP فایل را مستقیماً می‌خواند. .IP برخی از کدگذاری‌های \fIfontenc\fP در داخل کتابخانه ساخته شده‌اند. کتابخانه \fIfontenc\fP از آن‌ها با اولویت نسبت به یک فایل خارجی استفاده می‌کند. از گزینه \fB\-show\-builtin\fP برای ارائه اطلاعات مشابه در زمانی که \fBluit\fP برای استفاده از \fIiconv\fP پیکربندی شده است، استفاده کنید. .TP .BI \-show\-iconv " encoding" نمایش یک کدگذاری مشخص با استفاده از قالب \*(``.enc\*(''. اگر \fBluit\fP برای استفاده از \fIiconv\fP پیکربندی شده باشد، اطلاعات را با استفاده از آن رابط به دست می‌آورد. اگر \fIiconv\fP نتواند اطلاعات را فراهم کند، \fBluit\fP ممکن است از یک جدول توکار استفاده کند. .TP .B \-t مقداردهی اولیه \fBluit\fP با استفاده از لوکال و گزینه‌های خط فرمان، اما بدون باز کردن اتصال pty. این گزینه برای آزمایش پیکربندی \fBluit\fP استفاده می‌شود. در صورتی که هیچ خطایی شناسایی نشود، با موفقیت خارج می‌شود. تکرار گزینه \fB\-t\fP باعث می‌شود پیام‌های هشدار به‌عنوان خطا در نظر گرفته شوند. .TP .B \-v حالت پرگو (verbose). تکرار گزینه، مانند \*(``\fB\-v\ \-v\fP\*(''، آن را پرگوتر می‌کند. .B Luit از \fIgetopt\fP استفاده نمی‌کند، بنابراین \*(``\fB\-vv\fP\*('' کار نمی‌کند. .TP .B \-x خروج به محض پایان فرآیند فرزند. این ممکن است باعث شود .B luit داده‌ها را در انتهای خروجی فرزند از دست بدهد. .TP .B \-\- پایان گزینه‌ها. .\" *************************************************************************** .SH "محیط (ENVIRONMENT)" \fBLuit\fP از این متغیرهای محیطی استفاده می‌کند: .TP FONT_ENCODINGS_DIRECTORY محل فایل \*(``encodings.dir\*('' را که کدگذاری‌های موجود در فایل‌های خارجی \*(``.enc\*('' را فهرست می‌کند، بازنویسی می‌کند. .TP LC_ALL .TP LC_CTYPE .TP LANG در طول مقداردهی اولیه، \fBluit\fP تابع \fBsetlocale\fP را فراخوانی می‌کند تا بررسی کند آیا لوکال کاربر توسط سیستم‌عامل پشتیبانی می‌شود یا خیر. اگر \fBsetlocale\fP با شکست مواجه شود، \fBluit\fP به ترتیب این متغیرها را بررسی می‌کند تا از محیط کاربر سرنخ‌هایی درباره ترجیح لوکال به دست آورد. .TP NCURSES_NO_UTF8_ACS \fBLuit\fP این متغیر را تنظیم می‌کند تا به ncurses بگوید برای رسم خطوط به کنترل‌های VT100 SI/SO اتکا نکند. .TP SHELL این متغیر معمولاً طبق یک قرارداد توسط پوسته‌هایی غیر از پوسته Bourne تنظیم می‌شود. \fBLuit\fP از این مقدار (به‌جای مدخل کاربر در /etc/passwd) برای تصمیم‌گیری درباره اجرای کدام پوسته استفاده می‌کند. اگر SHELL تنظیم نشده باشد، \fBluit\fP پوسته /bin/sh را اجرا می‌کند. .\" *************************************************************************** .SH "فایل‌ها (FILES)" .TP .B /usr/share/X11/locale/locale.alias فایلی که لوکال‌ها را به کدگذاری‌های لوکال نگاشت می‌کند. .\" *************************************************************************** .SH "اشکالات (BUGS)" .SS "محدودیت‌ها (Limitations)" هیچ‌کدام از این پیچیدگی‌ها نباید ضروری می‌بود. استفاده از UTF-8 بدون حالت (Stateless UTF-8) در سراسر سیستم، راهکار مناسب است. .PP مجموعه نویسه‌های دارای بایت میانی غیرساده هنوز پشتیبانی نمی‌شوند. .PP انتخاب مجموعه‌های جایگزین نویسه‌های کنترلی پشتیبانی نمی‌شود و هرگز نخواهد شد. .SS "امنیت (Security)" در سیستم‌های دارای ptyهای SVR4 (\*(``Unix-98\*('') (لینوکس نسخه ۲٫۲ و بالاتر، SVR4)، .B luit باید توسط کاربر فراخوان اجرا شود. .PP در سیستم‌های فاقد ptyهای SVR4 (\*(``Unix-98\*('') (به‌ویژه مشتقات BSD)، اجرای .B luit توسط یک کاربر عادی باعث می‌شود tty برای همه قابل‌نوشتن (world-writable) باقی بماند؛ این یک رخنه امنیتی است و \fBluit\fP یک هشدار تولید خواهد کرد (اما همچنان اجرا را می‌پذیرد). یک راهکار احتمالی این است که .B luit به‌صورت suid root تنظیم شود؛ .B luit باید امتیازات را به اندازه کافی زود رها کند تا این کار امن باشد. با این حال، کد راه‌اندازی به‌طور کامل بررسی و بازرسی نشده است و نویسنده هیچ مسئولیتی در قبال مشکلات امنیتی ناشی از آن نمی‌پذیرد. .PP .B Luit اگر به‌صورت setuid نصب شده باشد و نتواند با اطمینان امتیازات را رها کند، از اجرا خودداری خواهد کرد. .\" *************************************************************************** .SH "مثال‌ها (EXAMPLES)" معمول‌ترین کاربرد .B luit تطبیق یک نمونه از .B XTerm با کدگذاری لوکال است. نسخه‌های فعلی .B XTerm در صورت نیاز، .B luit را به‌طور خودکار فراخوانی می‌کنند. اگر از نسخه قدیمی‌تری از .BR XTerm یا یک شبیه‌ساز ترمینال دیگر استفاده می‌کنید، می‌توانید .B luit را به‌صورت دستی فراخوانی کنید: .IP $ xterm \-u8 \-e luit .PP اگر در یک لوکال UTF-8 کار می‌کنید اما نیاز به دسترسی به یک ماشین راه دور دارید که از UTF-8 پشتیبانی نمی‌کند، .B luit می‌تواند خروجی راه دور را با ترمینال شما تطبیق دهد: .IP $ LC_ALL=fr_FR luit ssh legacy-machine .PP .B Luit همچنین برای برنامه‌هایی مفید است که کدگذاری خاصی متفاوت از کدگذاری معمول سیستم را در خود تعبیه کرده‌اند یا می‌خواهند از توالی‌های گریز قدیمی برای خروجی چندزبانه استفاده کنند. به‌ویژه، نسخه‌هایی از .B Emacs که به خوبی با UTF-8 کار نمی‌کنند می‌توانند از .B luit برای خروجی چندزبانه استفاده کنند: .IP $ luit \-encoding 'ISO 8859\-1' emacs \-nw .PP و سپس در .BR Emacs ، .IP M\-x set\-terminal\-coding\-system RET iso\-2022\-8bit\-ss2 RET .\" *************************************************************************** .SH "نویسندگان (AUTHORS)" برنامه Luit توسط Juliusz Chroboczek برای پروژه XFree86 نوشته شده است. .PP نگهداری \fBluit\fP برای استفاده توسط \fBxterm\fP از سال ۲۰۰۶ بر عهده Thomas E. Dickey بوده است. .\" *************************************************************************** .SH "همچنین ببینید (SEE ALSO)" موارد پرتابل: .bP xterm(1), .bP ncurses(3X). .PP موارد مخصوص لینوکس: .bP unicode(1), .bP utf-8(1), .bP charsets(1). .PP موارد زیر به‌ویژه مفید هستند: .nf .bP \fICharacter Code Structure and Extension Techniques (ISO\ 2022, ECMA-35)\fP .bP \fIControl Functions for Coded Character Sets (ISO\ 6429, ECMA-48)\fP .bP http://czyborra.com/charsets .fi