{"id":671,"date":"2017-03-31T18:11:22","date_gmt":"2017-03-31T17:11:22","guid":{"rendered":"https:\/\/dotnet-usergroup-hamburg.de\/?p=671"},"modified":"2017-03-31T18:11:22","modified_gmt":"2017-03-31T17:11:22","slug":"typsichere-uebersetzungen-mit-translatable-und-ein-c-option-type","status":"publish","type":"post","link":"https:\/\/dotnet-usergroup-hamburg.de\/?p=671","title":{"rendered":"Typsichere \u00dcbersetzungen mit Translatable und ein C# Option Type"},"content":{"rendered":"<p>Wir haben f\u00fcr diesen Termin zwei Themen:<\/p>\n<hr \/>\n<p><a href=\"https:\/\/www.meetup.com\/de-DE\/Hamburg-C-Net-Meetup\/members\/190685394\/\">Philip Chinery<\/a>\u00a0wird etwas \u00fcber Translatable erz\u00e4hlen<\/p>\n<p>Translatable ist eine von <a href=\"http:\/\/www.pdfforge.org\/\">pdfforge<\/a> erstellte Bibliothek, um in C# verl\u00e4ssliche, typsichere \u00dcbersetzungen nutzen zu k\u00f6nnen. Dabei werden mehrere Pluralformen unterst\u00fctzt (es gibt etliche Sprachen mit mehr als einem Plural). Der C#-Compiler sagt uns dabei, welche \u00dcbersetzungen \u00fcberhaupt verwendet werden, um so den Aufwand f\u00fcr die \u00dcbersetzer m\u00f6glichst gering zu halten. Au\u00dferdem gibt es tools drumherum, um \u00dcbersetzungen aus der kompilierten Anwendung zu exportieren. Ich m\u00f6chte euch zeigen, wie man eine Anwendung so elegant \u00fcbersetzbar machen kann. Bei Interesse zeige ich auch gerne die Reflection-Mechanismen, die unter der Haube verwendet werden, um die einfache Benutzbarkeit und den Export zu erm\u00f6glichen.<\/p>\n<hr \/>\n<p><a href=\"https:\/\/www.meetup.com\/de-DE\/Hamburg-C-Net-Meetup\/members\/186639171\/\">Esther Machata<\/a>\u00a0wird etwas \u00fcber einen C# Option Type erz\u00e4hlen:<\/p>\n<p>An option type in C#<\/p>\n<p>If you\u2019ve been programming C# you\u2019ve probably shouted at your screen because of a NullReferenceException at some point in the past. This usually happens because some method returned null when you weren\u2019t expecting it and thus did not handle that possibility in your code. Null is often (ab)used to represent absent or optional values, which makes unexpected exceptions even more likely. But there\u2019s a better way: an option type!<\/p>\n<p>It\u2019s a strongly typed alternative to null values that not only lets you avoid NullReferenceExceptions but also declare your intent and write more focused code.<\/p>\n<p>I\u2019ll give you an overview of this awesome concept and how to use it even though C# does not have a built-in option type.<\/p>\n<hr \/>\n<p>Zur Anmeldung geht\u00a0hier zum Meetup Treffen:\u00a0<a href=\"https:\/\/www.meetup.com\/de-DE\/Hamburg-C-Net-Meetup\/events\/237320336\/\">https:\/\/www.meetup.com\/de-DE\/Hamburg-C-Net-Meetup\/events\/237320336\/<\/a><\/p>\n<p>Termin: \u00a0Mittwoch, 5. April 2017 um 18:30<\/p>\n<p class=\"big flush--bottom\">Veranstaltungsort:\u00a0<a title=\"\" href=\"https:\/\/maps.google.com\/maps?f=q&amp;hl=en&amp;q=Gro%C3%9Fer+Burstah+50%2C+20457+%2C+Hamburg%2C+de\" target=\"_blank\" rel=\"noopener\">Academic Work<\/a>\u00a0&#8211; Gro\u00dfer Burstah 50, 20457 , Hamburg<\/p>\n<p>Wir freuen uns auf zwei spannende Vortr\u00e4ge und einen informativen Abend.<\/p>\n<p>Liebe Gr\u00fc\u00dfe,<\/p>\n<p>das .Net Orga Team<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wir haben f\u00fcr diesen Termin zwei Themen: Philip Chinery\u00a0wird etwas \u00fcber Translatable erz\u00e4hlen Translatable ist eine von pdfforge erstellte Bibliothek, um in C# verl\u00e4ssliche, typsichere \u00dcbersetzungen nutzen zu k\u00f6nnen. Dabei werden mehrere Pluralformen unterst\u00fctzt (es gibt etliche Sprachen mit mehr &hellip; <a href=\"https:\/\/dotnet-usergroup-hamburg.de\/?p=671\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-671","post","type-post","status-publish","format-standard","hentry","category-termine"],"_links":{"self":[{"href":"https:\/\/dotnet-usergroup-hamburg.de\/index.php?rest_route=\/wp\/v2\/posts\/671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dotnet-usergroup-hamburg.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dotnet-usergroup-hamburg.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dotnet-usergroup-hamburg.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dotnet-usergroup-hamburg.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=671"}],"version-history":[{"count":0,"href":"https:\/\/dotnet-usergroup-hamburg.de\/index.php?rest_route=\/wp\/v2\/posts\/671\/revisions"}],"wp:attachment":[{"href":"https:\/\/dotnet-usergroup-hamburg.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dotnet-usergroup-hamburg.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dotnet-usergroup-hamburg.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}