O livro "Gerenciamento de memória no .NET para profissionais" na tradução correta da equipe do DotNetRu

Mais recentemente , um livro maravilhoso de Konrad Kokosy , Gerenciamento de Memória no .NET for Professionals, foi publicado pela DMK-press em russo . Esta publicação é notável pelo fato de a tradução envolver não apenas pessoas do editor, mas também membros da comunidade DotNet.Ru , praticando desenvolvedores para os quais este livro é realmente relevante. Sob o corte, a história de por que nos envolvemos nisso, como o processo foi organizado e que dificuldades encontramos.







Sobre o autor do artigo: Eugene Bikkinin , membro do DotNetRu, um dos editores de tradução.

Motivação


Muitos de vocês perguntam: por que traduzir um livro técnico para o russo? Afinal, o inglês se tornou o idioma principal de um especialista em TI, tanto que algumas frases de nossos colegas de língua russa precisam ser traduzidas na mente - há tantas palavras em inglês nelas.

Gostaria de destacar alguns pontos:

  • Falta de conhecimento da língua. Às vezes, o conhecimento é necessário mais rapidamente do que aprender cursos de inglês.
  • Hora e local da leitura. Isto é especialmente verdade para livros em papel quando não há dicionário ou internet nas proximidades para traduzir rapidamente uma frase. Por exemplo, muitas vezes leio no metrô de um e-book.
  • . , , . , . , , . .

Certamente, existem muitas outras razões, mas essas três são pessoalmente as principais. Se a tradução for boa, competente, vou ler e aprender o conhecimento com mais eficiência mais rapidamente, em vez de entrar no dicionário a cada página. Por outro lado, todos conhecemos traduções de tal qualidade quando você não tropeça e, às vezes, apenas se levanta no meio da página porque não entende absolutamente o que o autor queria dizer. Então você lê a mesma frase no original e tudo fica claro para você. Ou seja, a tradução pode facilitar a vida do leitor e tornar a leitura completamente impossível.

Como esse projeto surgiu?


O livro de Conrad Coconut é sobre gerenciamento de memória no .NET e, de fato, descreve completamente o algoritmo do coletor de lixo, quais decisões seus criadores tomaram e sua motivação. O tópico em si é muito difícil de ler no original, e uma tradução ruim pode matar completamente qualquer entendimento. Portanto, era necessária a ajuda de especialistas.

Mas com especialistas, problemas. Há tradutores que viram esse código pela última vez há 30 anos. Há desenvolvedores que gritam com qualquer termo estrangeiro que todos precisam saber inglês. E existe um mercado cujas necessidades eles não conseguem satisfazer. Na melhor das hipóteses, os editores procuram corretores técnicos entre os profissionais. E é exatamente isso que nosso estande .NET no festival TechTrain enfrentou .


Estande da comunidade TechTrain

De fato, uma comunidade independente sem fins lucrativos - quem pode dominar essa tarefa melhor que ele? As pessoas que escrevem código todos os dias, realizam reuniões, escrevem artigos no centro, treinam futuros colegas de escolas e universidades, investem agressivamente na criação e disseminação de material em russo na plataforma favorita. Esta é uma simbiose perfeita. A comunidade precisa de traduções de qualidade de livros fundamentais. Os editores precisam da demanda por seus produtos. Apesar de ter sido a primeira experiência desse tipo, agarramos a oferta com entusiasmo.

Primeiro, contatamos Konrad Kokosoy e recebemos sua bênção pela tradução (a propósito, no processo, recorremos repetidamente a ele para obter esclarecimentos sobre lugares não óbvios e sempre recebemos grande apoio). Em seguida, reunimos fãs do trabalho do autor, pessoas familiarizadas com os processos descritos em primeira mão. Eles foram diluídos por programadores-amantes da língua e literatura russas (sim, existem). E eles têm uma excelente equipe, pronta por vários meses para se dedicar às explorações inexploradas da tradução.

Dificuldades


O primeiro capítulo mostrou que não é apenas um ajuste técnico. Queríamos refazer substancialmente a tradução. E não foi tão simples quanto parece. Para as editoras, essa prática está ausente, porque elas enfrentam o risco de uma tradução ruim de pessoas obscuras. Mas temos sorte. Após muita discussão, a editora DMK-press concordou em organizar um experimento e dar a transferência à nossa total disposição. Pelo qual somos extremamente gratos a eles. Portanto, este trabalho não é apenas uma tradução do livro, mas também uma tentativa de provar que a versão russa pode ser não apenas qualitativa do ponto de vista técnico, mas também harmoniosa por parte do idioma.

Na maioria dos casos, as correções eram bastante óbvias. Substituímos o "quadro" pela "estrutura", a "rota de chamada" pela "pilha de chamadas" e o "ponteiro inteligente" pelo "ponteiro inteligente".

Mas houve obstáculos. Um desses casos foi um par de plug / gap . Por um lado, não há tradução de TI estabelecida para essas palavras. Por outro lado, essa não é a fantasia do autor. Essas palavras são usadas diretamente no código gc.cpp . Portanto, no sentido, o plug é uma área contínua da memória na qual os objetos usados ​​estão localizados, e o gap é um gap entre essas áreas.



Inicialmente, um par de bloco / lacuna foi usado como tradução dessas duas palavras. Mas decidimos que essa tradução não seria percebida adequadamente pelo leitor. Portanto, tivemos que sacrificar a concisão e introduzir os conceitos de “bloco cheio / vazio”.
É verdade que os plugues fixados apareceram no texto, mas , no entanto, "blocos preenchidos fixos" parecem soar melhor que "blocos fixos".

Felizmente, não existem muitos termos específicos no livro. Basicamente, no entanto, havia descritores bastante conhecidos, identificador, tipo de valor, tipo de referência e outros. Parece que todos esses termos foram traduzidos por muito tempo, no entanto, surgiram divergências com eles.

Descritor literalmente se traduz em "descritor". Mas também lidartambém frequentemente traduzido assim. Portanto, eu tive que traduzir o descritor literalmente "descritor", e handle tornou-se um "descritor" (não traduza o mesmo que "caneta" - e isso foi encontrado em algumas traduções).

Ao resolver problemas de tradução, o grande problema é a falta de uma fonte de "referência". Essa fonte pode ser o site docs.microsoft.com/ru-ru . Infelizmente, nem todos os artigos foram traduzidos e verificados. Portanto, tentamos usar esse recurso como fonte apenas se vimos que uma página específica foi traduzida manualmente.

Ao editar um livro de quase 1.000 páginas, um desafio separado é atingir os mesmos termos em todos os capítulos. Como o grupo estava envolvido na edição, os capítulos não foram processados ​​em ordem e, às vezes, usava termos ligeiramente diferentes em diferentes capítulos. Sem dúvida, o glossário geral de termos ajudou muito, mas isso não anulou a necessidade da revisão final de todos os capítulos seguidos e da reconciliação de todos os termos.


Na foto, o autor de um livro com um dos tradutores

Conclusão


Obrigado a todos que tornaram este projeto realidade. Obviamente, Konrad por seu trabalho original e por ajudar na versão russa do livro. Qualquer um que apoie a verdadeira revolução dentro da editora e esteja pronto para fazer experimentos.

Nossa equipe amigável que torna o mundo melhor de graça, a saber:

  • Igor Labutin
  • Irina Ananyeva
  • Maxim Shoshin
  • Elizabeth Golenok
  • Evgeny Bikkinin
  • Renat Taziev
  • Anatoly Kulakov

E, claro, para vocês, leitores, pelo bem de quem tudo isso foi concebido. Código de

desconto de 25%: DotNet25 .

Você pode pedir um livro no site do editor .

E também criamos um bate-papo por telegrama . Aqui você pode conversar com editores de tradução, fazer suas perguntas, explicar por que e quanto estávamos errados ou simplesmente debater sobre o tema das traduções e a participação da comunidade em tais atividades.

All Articles