انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: علی ۵۰۰ در 11 آبان 1395، 06:46 ب‌ظ

عنوان: آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: علی ۵۰۰ در 11 آبان 1395، 06:46 ب‌ظ
سلام
با مقداری تحقیق و مخلوط کردن کد، توانستم یک کد بنویسیم که علامت مساوی را از سمت راست به چپ در ترمینال ( چه در gnome terminal و چه در tty1 ) چاپ می‌کند. به عکس زیر دقت کنید:

(http://forum.ubuntu.ir/index.php?action=dlattach;topic=141791.0;attach=45591;image)

این هم کد: ( این برنامه را می‌توانید در کامپایلر سی‌پلاس‌پلاس، مانند g++ کامپایل کنید. )

#include <iostream>
#include <cstdlib>
#include <unistd.h>
#include <sys/ioctl.h>

int main()
{
    system("clear");
   
    struct winsize w;
    ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);

    int wRow = w.ws_row;
    int wColumns = w.ws_col;

    for ( int j = 1; j <= wRow; ++j )
    {
        for ( int i = wColumns; i > 0; --i )
        {
            std::cout << "\033[" << j << ";" << i << "H";
            std::cout << "=";
            std::cout << "\033[" << j << ";" << i - 1 << "H";
            std::cout << std::flush;
            usleep( 50000 );
        }
    }
   
    std::cout << std::endl;
}

منابع:
۱- http://stackoverflow.com/questions/1022957/getting-terminal-width-in-c/1022961#1022961
۲- https://en.wikipedia.org/wiki/ANSI_escape_code
۳- http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/c327.html
عنوان: پاسخ : آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: asm2620 در 18 آبان 1395، 07:47 ب‌ظ
امکان تغییر فونت و تتیپ فارسی وجود داره؟
میخوام یه سیستم عامل بنویسم دوست دارم فارسی باشه مثل "افق" که البته اون هسته داس داشت ولی واسه من میخوام هسته لینوکس داشته باشه.
عنوان: پاسخ : آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: دانیال بهزادی در 22 آبان 1395، 05:28 ب‌ظ
امکان تغییر فونت و تتیپ فارسی وجود داره؟
میخوام یه سیستم عامل بنویسم دوست دارم فارسی باشه مثل "افق" که البته اون هسته داس داشت ولی واسه من میخوام هسته لینوکس داشته باشه.
مگه اوبونتو فارسی نیست؟
عنوان: پاسخ : آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: asm2620 در 23 آبان 1395، 01:55 ب‌ظ
امکان تغییر فونت و تتیپ فارسی وجود داره؟
میخوام یه سیستم عامل بنویسم دوست دارم فارسی باشه مثل "افق" که البته اون هسته داس داشت ولی واسه من میخوام هسته لینوکس داشته باشه.
مگه اوبونتو فارسی نیست؟
مگه ترمینالش هم فارسی میشه؟
عنوان: پاسخ : آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: دانیال بهزادی در 24 آبان 1395، 06:48 ب‌ظ
چرا نشه؟
عنوان: پاسخ : آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: asm2620 در 24 آبان 1395، 09:07 ب‌ظ
چرا نشه؟
چون رابط متنی هیچ سیستم‌عاملی فارسی نیست و نباید هم فارسی باشه؟
عنوان: پاسخ : آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: علی ۵۰۰ در 24 آبان 1395، 09:09 ب‌ظ
چرا نشه؟
چون رابط متنی هیچ سیستم‌عاملی فارسی نیست و نباید هم فارسی باشه؟
سلام
یک نگاهی به این بنداز:
http://forum.ubuntu.ir/index.php/topic,140716.0.html
عنوان: پاسخ : آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: asm2620 در 24 آبان 1395، 09:42 ب‌ظ
چرا نشه؟
چون رابط متنی هیچ سیستم‌عاملی فارسی نیست و نباید هم فارسی باشه؟
سلام
یک نگاهی به این بنداز:
http://forum.ubuntu.ir/index.php/topic,140716.0.html
این تصویر طرف اومده فونت Gnome Terminal رو تغییر داده و راست به چپ کرده و توی vim فارسی تایپ کرده.
آیا خارج از محیط گرافیکی روی tty0 و نه روی gnome terminal این امکان وجود داره؟؟؟ آیا دستور هایی که تایپ میکنه فارسی هست و اون دستور ها هم فارسی پاسخ میدن؟ مثلا من مینویسم: (راهنما گنوم‌ترم) بعد این میاد فارسی برام دستور گنوم‌ترم رو توضیح میده!!
عنوان: پاسخ : آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: علی ۵۰۰ در 25 آبان 1395، 01:12 ب‌ظ
چرا نشه؟
چون رابط متنی هیچ سیستم‌عاملی فارسی نیست و نباید هم فارسی باشه؟
سلام
یک نگاهی به این بنداز:
http://forum.ubuntu.ir/index.php/topic,140716.0.html
این تصویر طرف اومده فونت Gnome Terminal رو تغییر داده و راست به چپ کرده و توی vim فارسی تایپ کرده.
آیا خارج از محیط گرافیکی روی tty0 و نه روی gnome terminal این امکان وجود داره؟؟؟ آیا دستور هایی که تایپ میکنه فارسی هست و اون دستور ها هم فارسی پاسخ میدن؟ مثلا من مینویسم: (راهنما گنوم‌ترم) بعد این میاد فارسی برام دستور گنوم‌ترم رو توضیح میده!!
سلام
با نصب fbterm و اجرا کردن آن در محیط tty، توانایی دیدن نویسه‌های یونیکد، در tty مُیسره. (البته نویسه‌ها به هم نمی‌چسبن، برای چسباندن نویسه‌ها به هم، از vim همراه با خاصیّت راست به چپ، به صورت زیر استفاده کنید.)
:set rightleftبرای تغییر صفحه‌کلید در tty انگار چیزهایی در اینجا نوشته:
http://askubuntu.com/questions/155424/changing-tty-keyboard-layout-on-a-server
به عکس پیوست شده دقت کنید: ( این عکس محیط tty را نمایش می‌دهد. )
عنوان: پاسخ : آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: علی ۵۰۰ در 25 آبان 1395، 01:54 ب‌ظ
نقل‌قول
آیا دستور هایی که تایپ میکنه فارسی هست و اون دستور ها هم فارسی پاسخ میدن؟ مثلا من مینویسم: (راهنما گنوم‌ترم) بعد این میاد فارسی برام دستور گنوم‌ترم رو توضیح میده!!
با دستور alias می‌شود برای دستورها نام دومی در نظر گرفت. این نام دوم می‌تواند حروف یونیکد ( مثل حروف فارسی یونیکد ) باشد. مثلاً می‌توان نوشت:
alias ب='ls'بعد تا زمانی که ترمینال را نبسته‌اید، می‌توانید از حرف « ب » به جای دستور « ls » استفاده کنید.
برای اینکه پاسخ نرم‌افزار شما فارسی باشه، فکر کنم بتوانید یک نرم‌افزار بنویسید که وقتی مثلاً نوشتید « برنامه راهنما »، آرگومان « برنامه » را همراه با آرگومان « راهنما » اجرا کند و متنی که به صورت فارسی با انکودینگ utf-8 نوشته شده را در خروجی استاندارد چاپ کند. البته اگر می‌خواهید نوشته‌ها درست نمایش داده بشوند، از ترمینالی استفاده کنید که از یونیکد و complex text layout (یا به طور خلاصه: CTL) پشتیبانی کند.

CTL قسمتی از یونیکد است و از آن در زبان‌هایی مثل عربی، فارسی و... استفاده می‌شود.
CJK قسمتی از یونیکد است و از آن در زبان‌هایی مثل چینی، ژاپنی و کره‌ای استفاده می‌شود.

اطلاعاتی در مورد الگوریتم (خوارزمی) دوجهته یونیکد در پیوند زیر موجود است:
http://unicode.org/reports/tr9/
عنوان: پاسخ : آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: asm2620 در 26 آبان 1395، 02:02 ب‌ظ
نقل‌قول
آیا دستور هایی که تایپ میکنه فارسی هست و اون دستور ها هم فارسی پاسخ میدن؟ مثلا من مینویسم: (راهنما گنوم‌ترم) بعد این میاد فارسی برام دستور گنوم‌ترم رو توضیح میده!!
با دستور alias می‌شود برای دستورها نام دومی در نظر گرفت. این نام دوم می‌تواند حروف یونیکد ( مثل حروف فارسی یونیکد ) باشد. مثلاً می‌توان نوشت:
alias ب='ls'بعد تا زمانی که ترمینال را نبسته‌اید، می‌توانید از حرف « ب » به جای دستور « ls » استفاده کنید.
برای اینکه پاسخ نرم‌افزار شما فارسی باشه، فکر کنم بتوانید یک نرم‌افزار بنویسید که وقتی مثلاً نوشتید « برنامه راهنما »، برنامهٔ « برنامه » را با آرگومان « راهنما » اجرا کند و متنی که به صورت فارسی با انکودینگ utf-8 نوشته شده را در خروجی استاندارد چاپ کند. البته اگر می‌خواهید نوشته‌ها درست نمایش داده بشوند، از ترمینالی استفاده کنید که از یونیکد و complex text layout (یا به طور خلاصه: CTL) پشتیبانی کند.

CTL قسمتی از یونیکد است و از آن در زبان‌هایی مثل عربی، فارسی و... استفاده می‌شود.
CJK قسمتی از یونیکد است و از آن در زبان‌هایی مثل چینی، ژاپنی و کره‌ای استفاده می‌شود.

اطلاعاتی در مورد الگوریتم (خوارزمی) دوجهته یونیکد در پیوند زیر موجود است:
http://unicode.org/reports/tr9/
این ها رو من خودم میدونم. بحث من اینه که وقتی از تنظیمات اوبونتو زبان فارسی رو انتخاب کنی فقط منو ها و رابط گرافیکی فارسی میشه و تاثیری روی ترمینال نداره.
عنوان: پاسخ : آیا می‌خواهید یک نویسه را در ترمینال از راست به چپ چاپ کنید؟
ارسال شده توسط: دانیال بهزادی در 27 آبان 1395، 01:09 ق‌ظ
این ها رو من خودم میدونم. بحث من اینه که وقتی از تنظیمات اوبونتو زبان فارسی رو انتخاب کنی فقط منو ها و رابط گرافیکی فارسی میشه و تاثیری روی ترمینال نداره.
اون که دیگه دست خودته. bashrcات رو عوض کن، فارسی بشه :دی