Re: надо ли переводить некоторые названия переменных в функции на языке Си
06.03.2018 17:01, Sergey Alyoshin пишет: В целом действительные названия функций, если они и попали в перевод, переводить, разумеется, не надо, как их переведённые искать по исходному коду или сообщать об ошибке? Вот нашла где я видела выводы, что упоминала ранее Программа, включённая в состав пакета e2fsprog-1.43.5 # dumpe2fs -b /dev/sda2 dumpe2fs 1.43.9 (8-Feb-2018) # dumpe2fs -f /dev/sda2 dumpe2fs 1.43.9 (8-Feb-2018) Filesystem volume name: krioxa Last mounted on: /mnt Filesystem UUID: 2d7c2bb6-4131-4f3f-96ad-35c2c433158a Filesystem magic number: 0xEF53 Filesystem revision #:1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum Filesystem flags: signed_directory_hash Default mount options:user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 3915776 Block count: 15635456 Reserved block count: 781772 Free blocks: 3611398 Free inodes: 3130945 First block: 0 Block size: 4096 Fragment size:4096 Group descriptor size:64 Reserved GDT blocks: 1024 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Flex block group size:16 Filesystem created: Sun Oct 8 17:54:02 2017 Last mount time: Tue Feb 27 18:37:38 2018 Last write time: Tue Feb 27 18:39:07 2018 Mount count: 131 Maximum mount count: -1 Last checked: Sun Oct 8 17:54:02 2017 Check interval: 0 () Lifetime writes: 143 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 32 Desired extra isize: 32 Journal inode:8 Default directory hash: half_md4 Directory Hash Seed: 12dcd8ba-2011-465c-a850-1120c1208e20 Journal backup: inode blocks Checksum type:crc32c Checksum: 0xbcdce10b Journal features: journal_incompat_revoke journal_64bit journal_checksum_v3 Journal size: 256M Journal length: 65536 Journal sequence: 0x0006e9bb Journal start:0 Journal checksum type:crc32c Journal checksum: 0x2150e8f7 Group 0: (Blocks 0-32767) csum 0xc078 [ITABLE_ZEROED] Primary superblock at 0, Group descriptors at 1-8 Reserved GDT blocks at 9-1032 Block bitmap at 1033 (+1033), csum 0xf2a567fb Inode bitmap at 1049 (+1049), csum 0x392b841c Inode table at 1065-1576 (+1065) 21494 free blocks, 0 free inodes, 467 directories Free blocks: 11101-11109, 11154-11159, 11289-32767 Free inodes: Group 1: (Blocks 32768-65535) csum 0x0b77 [ITABLE_ZEROED] Backup superblock at 32768, Group descriptors at 32769-32776 Reserved GDT blocks at 32777-33800 Block bitmap at 1034 (bg #0 + 1034), csum 0x8ac5d3e3 Inode bitmap at 1050 (bg #0 + 1050), csum 0x392b841c Inode table at 1577-2088 (bg #0 + 1577) 520 free blocks, 0 free inodes, 1016 directories Free blocks: 58193-58225, 58240-58348, 58368-58462, 59680-59698, 60416-60679 Free inodes: Group 17: (Blocks 557056-589823) csum 0xa1bd [ITABLE_ZEROED] Block bitmap at 524289 (bg #16 + 1), csum 0x5a0aaa20 Inode bitmap at 524305 (bg #16 + 17), csum 0x21270d64 Inode table at 524832-525343 (bg #16 + 544) 2380 free blocks, 7257 free inodes, 144 directories, 7026 unused inodes Free blocks: 557124-557151, 557177, 557180-557183, 557273-557279, 557299-557311, 557452-557471, 557492-557582, 557712-557713, 557836-558026, 558028-558577, 558580-558591, 558775-558805, 558820, 558909-558910, 558923-558924, 558970, 558972-558973, 558986, 559004, 559015-559016, 559055-559056, 559065, 559074-559077, 559098-559099, 574927-574975, 575476-575487, 577805-577855, 577896-577919, 577975-577983, 578038-578047, 578393-578431, 578529-578559, 579046-579071, 579897-580095, 580242-580607, 588800-588891, 588895, 588901, 588941, 588943-588944, 588946-588947, 588950, 589045-589046, 589049-589054, 589056, 589058, 589063-589064, 589068-589069, 589223-589226, 589229-589230, 589232-589235, 589278, 589286-589288, 589290-589293, 589299-589300, 589302-589303, 589305-589321, 589324-589328, 589331-589337, 589348, 589350, 589362-589375, 589400-589417, 589423-589424, 589428-589443, 589445-589447, 589451-589823 Free inodes: 140199-140200, 140202-147456 Group 477: (Blocks 15630336-15635455) csum 0x9553 [INODE_UNINIT, ITABLE_ZEROED] Block bitmap at 15204365 (bg #464 + 13), csum 0xe35acda7 Inode bitmap at 15204379 (bg #464 + 27), csum 0x Inode table at 15211036-15211547 (bg #464 + 6684) 5120 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes Free blocks: 15630336-15635455 Free i
Re: надо ли переводить некоторые названия переменных в функции на языке Си
06.03.2018 17:12, Sergey Alyoshin пишет: 2018-03-06 17:01 GMT+03:00 Sergey Alyoshin : Я думаю что это своеобразный способ унификации строк и первая буква пропускается при выводе сообщения программой, видимо были причины не использовать возможность указать контекст. Надо посмотреть по коду. В .pot файле в самом начале есть комментарий к переводу этих строк. Первую букву надо оставить не переведённой. Да читаю pot
Re: надо ли переводить некоторые названия переменных в функции на языке Си
06.03.2018 17:01, Sergey Alyoshin пишет: 2018-03-06 16:39 GMT+03:00 Gali Anikina : Это вопрос про вывод программой строк отмеченных N_()? Да, то есть строки вида "N_("aextended attribute")" переводить не буду - заглянула в книгу Програмирование на языке Си Подбельский В.В. и Фомин С.С. Москва Финансы и статистика 2001, у них при создании структуры так перечисляются внутри структурные типы и если программист хочет, то может добавить описания - например так- N_("aextended attribute"); /*текст*/ Вот если бы в этом файле были такие пояснения напротив вводимых структурных типов, тогда да-эти пояснения надо было бы переводить, но они бы не повлияли на работу программы, а сами названия структурных типов - "N_("aextended attribute")" не трогать. Исходя из этого я и сделала вывод, что эти строки не надо переводить. Если бы их не надо был переводить, они не были бы отмечены N_() для перевода (deferred translations). Это не названия переменных или полей структуры, это массив из константных строк. Я думаю что это своеобразный способ унификации строк и первая буква пропускается при выводе сообщения программой, видимо были причины не использовать возможность указать контекст. Надо посмотреть по коду. В целом действительные названия функций, если они и попали в перевод, переводить, разумеется, не надо, как их переведённые искать по исходному коду или сообщать об ошибке? Согласна, зачем-то их включили в pot - по идее надо переводить-почитаю исходный pot
Re: надо ли переводить некоторые названия переменных в функции на языке Си
2018-03-06 17:01 GMT+03:00 Sergey Alyoshin : > Я думаю что это своеобразный способ унификации > строк и первая буква пропускается при выводе сообщения программой, видимо были > причины не использовать возможность указать контекст. Надо посмотреть по коду. В .pot файле в самом начале есть комментарий к переводу этих строк. Первую букву надо оставить не переведённой.
Re: надо ли переводить некоторые названия переменных в функции на языке Си
2018-03-06 16:39 GMT+03:00 Gali Anikina : >> Это вопрос про вывод программой строк отмеченных N_()? >> > Да, то есть строки вида "N_("aextended attribute")" переводить не буду - > заглянула в книгу Програмирование на языке Си Подбельский В.В. и Фомин С.С. > Москва Финансы и статистика 2001, у них при создании структуры так > перечисляются внутри структурные типы и если программист хочет, то может > добавить описания - например так- > N_("aextended attribute"); /*текст*/ > Вот если бы в этом файле были такие пояснения напротив вводимых структурных > типов, тогда да-эти пояснения надо было бы переводить, но они бы не повлияли > на работу программы, а сами названия структурных типов - "N_("aextended > attribute")" не трогать. Исходя из этого я и сделала вывод, что эти строки > не надо переводить. Если бы их не надо был переводить, они не были бы отмечены N_() для перевода (deferred translations). Это не названия переменных или полей структуры, это массив из константных строк. Я думаю что это своеобразный способ унификации строк и первая буква пропускается при выводе сообщения программой, видимо были причины не использовать возможность указать контекст. Надо посмотреть по коду. В целом действительные названия функций, если они и попали в перевод, переводить, разумеется, не надо, как их переведённые искать по исходному коду или сообщать об ошибке?
Re: надо ли переводить некоторые названия переменных в функции на языке Си
06.03.2018 12:26, Sergey Alyoshin пишет: 2018-03-06 7:14 GMT+03:00 Gali Anikina : При переводе po программы e2fsck столкнулась с такой проблемой Надо перевести #: e2fsck/message.c:116 msgid "aextended attribute" Может быть, игнорировать первый символ (т.е. "расширенные атрибуты"), или посмотреть как сделали переводы на другие языки. Про сдублированные первые буквы не помню, где читала, но смысл в том, что это считается "правилом хорошего тона в программировании" писать программы так, чтобы в будущем у других программистов не создавались проблемы от возможного совпадения вводимых здесь перемен. Например N_("bblock") Если бы здесь программист ввел просто block, то возможные перепутывания и тд были бы гарантированы (у пользователя в его системе был бы конфликт, так как это очень распространённое слово). Не могу сказать про другие языки, я интересовалась и читала только про Си :- Например The bad blocks inode мог бы там выглядеть как Иноде плохого блок - и далее N иноде Я бы не переводил inode, т.е. "inode сбойных блоков". msgstr "" inode групповой квоты msgstr "" inode загрузчика Про иноде - да это индексные дескрипторы или коротко иноде, но я впишу "по правильному" - индексные дескрипторы Нижеупомянутая программа не входит в комплект e2fsprogs, это я привела пример из того, что ранее читала и писала вам про суперблоки (а приведённая ниже Таблица 3. Инод сильно смахивает на то, что надо перевести в e2fsprogs) http://linuxshare.ru/docs/admin/ext3_undel.html Иноды Индексные дескрипторы (иноды) в таблице инодов каждой группы содержат мета-данные для каждого типа данных, которые может хранить файловая система. Этот тип может быть символической ссылкой и тогда достаточно только инода, он может быть каталогом, файлом, FIFO, сокетом UNIX и т. д. В случае файлов и каталогов реальные данные хранятся в блоках файловой системы за пределами инода. Первые 12 номеров блоков хранятся в иноде; если требуется больше блоков, тогда инод содержится ссылка на блок косвенной адресации: блок с номерами других блоков, содержащих данные. При необходимости инод может хранить указатели на блоки двойной и тройной косвенной адресации. Структура инода представлена в таблице 3. Таблица 3. Инод байты тип описание 0 .. 1 __le16 Режим файла 2 .. 3 __le16 Младшие 16 бит uid Владельца 4 .. 7 __le32 Размер в байтах 8 .. 11 __le32 Время доступа 12 .. 15__le32 Время создания 16 .. 19__le32 Время изменения 20 .. 23__le32 Время удаления 24 .. 25__le16 Младшие 16 бит идентификатора группы 26 .. 27__le16 Счетчик ссылок 28 .. 31__le32 Счетчик блоков 32 .. 35__le32 Флаги файла 36 .. 39linux1 Данные, зависящие от ОС 1 40 .. 99__le32[15] Указатели на блоки 100 .. 103 __le32 Версия файла (для NFS) 104 .. 107 __le32 Список контроля доступа (ACL) к файлу 108 .. 111 __le32 Список контроля доступа к каталогу 112 .. 115 __le32 Адрес фрагмента 116 .. 127 linux2 Данные, зависящие от ОС 2 ... Источник: Как восстановить удаленные файлы в файловой системе ext3 Рано или поздно это происходит с каждым: через мгновение после нажатия Enter вы осознате свою ошибку, но уже слишком поздно; вы удалили очень важный файл или каталог, для которого не существует резервной копии. Или, возможно, резервная копия есть, но она месячной давностии, пребывая в шоке, вы видите последний месяц, мгновенно пролетающий перед вашими глазами, и с болью понимаете, что вам придется делать все заново Оригинал: HOWTO recover deleted files on an ext3 file system Автор: Карло Вуд (Carlo Wood) Дата публикации: Март 2008 Перевод: Коваленко Алексей Дата перевода: 03.09.2009 г. Очень полезная и интересная статья, рекомендую. Вот 2-ой источник — «https://ru.wikipedia.org/w/index.php?title=Inode&oldid=87502932 написано так - В информатике inode (произносится а́ йнод или ино́ д ), индексный дескриптор Inodes -- The inode (index node) is a fundamental concept in the ext2 filesystem. Из ext2__filesystems_from_kernel__linux-source-4.9 Вообщем с инодами всё понятно, а по поводу переменных - да я согласна- посмотрю другие po по разным пакетам, где может применяться аналогичная картина- то есть просто надо пересмотреть все переведенные po. Это конечно очень трудоёмко, но и вэтом есть своя прелесть - какой пласт информации можно принять к сведению (то есть попутно узнать)! Это вопрос про вывод программой строк отмеченных N_()? Да, то есть строки вида "N_("aextended attribute")" переводить не буду - заглянула в книгу Програмирование на языке Си Подбельский В.В. и Фомин С.С. Москва Финансы и статистика 2001, у них при создании структуры так перечисляются внутри структурные типы и если программист хочет, то может добавить описания - например так- N_("aextended attribute"); /*текст*/ Вот если бы в этом файле были такие пояснения напротив вводимых структурных типов, тогда да-эти
Re: надо ли переводить некоторые названия переменных в функции на языке Си
Вт 06 мар 2018 @ 12:26 Sergey Alyoshin : > 2018-03-06 7:14 GMT+03:00 Gali Anikina : >> Например >> The bad blocks inode >> мог бы там выглядеть как >> Иноде плохого блок - и далее N иноде > > Я бы не переводил inode, т.е. "inode сбойных блоков". Ещё можно "инода" или "индексный дескриптор".
Re: надо ли переводить некоторые названия переменных в функции на языке Си
2018-03-06 7:14 GMT+03:00 Gali Anikina : > При переводе po программы e2fsck столкнулась с такой проблемой > > Надо перевести > #: e2fsck/message.c:116 > msgid "aextended attribute" Может быть, игнорировать первый символ (т.е. "расширенные атрибуты"), или посмотреть как сделали переводы на другие языки. > Например > The bad blocks inode > мог бы там выглядеть как > Иноде плохого блок - и далее N иноде Я бы не переводил inode, т.е. "inode сбойных блоков". > msgstr "" inode групповой квоты > msgstr "" inode загрузчика > Поскольку данная программа используется для проверки файловых систем, то в > какие-то моменты она выдаёт сообщения пользователю. В Си это делается через > print* - разные их варианты, а здесь получается по другому. Это вопрос про вывод программой строк отмеченных N_()?