Re: надо ли переводить некоторые названия переменных в функции на языке Си

2018-03-06 Пенетрантность Gali Anikina



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 

Re: надо ли переводить некоторые названия переменных в функции на языке Си

2018-03-06 Пенетрантность Gali Anikina



06.03.2018 17:12, Sergey Alyoshin пишет:

2018-03-06 17:01 GMT+03:00 Sergey Alyoshin :

Я думаю что это своеобразный способ унификации
строк и первая буква пропускается при выводе сообщения программой, видимо были
причины не использовать возможность указать контекст. Надо посмотреть по коду.


В .pot файле в самом начале есть комментарий к переводу этих строк.
Первую букву надо оставить не переведённой.


Да читаю pot



Re: надо ли переводить некоторые названия переменных в функции на языке Си

2018-03-06 Пенетрантность Gali Anikina



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 Пенетрантность Sergey Alyoshin
2018-03-06 17:01 GMT+03:00 Sergey Alyoshin :
> Я думаю что это своеобразный способ унификации
> строк и первая буква пропускается при выводе сообщения программой, видимо были
> причины не использовать возможность указать контекст. Надо посмотреть по коду.

В .pot файле в самом начале есть комментарий к переводу этих строк.
Первую букву надо оставить не переведённой.


Re: надо ли переводить некоторые названия переменных в функции на языке Си

2018-03-06 Пенетрантность 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). Это не названия переменных или полей структуры, это
массив из константных строк. Я думаю что это своеобразный способ унификации
строк и первая буква пропускается при выводе сообщения программой, видимо были
причины не использовать возможность указать контекст. Надо посмотреть по коду.

В целом действительные названия функций, если они и попали в перевод,
переводить, разумеется, не надо, как их переведённые искать по исходному коду
или сообщать об ошибке?


Re: надо ли переводить некоторые названия переменных в функции на языке Си

2018-03-06 Пенетрантность Gali Anikina



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=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: надо ли переводить некоторые названия переменных в функции на языке Си

2018-03-06 Пенетрантность Lev Lamberov
Вт 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 Пенетрантность Sergey Alyoshin
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_()?