this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

🐛 Fix po file sort not stable

Needed to fork github.com/chai2010/gettext-go, see https://github.com/ortfo/gettext.

+342 -350
+3 -3
go.mod
··· 5 5 require ( 6 6 github.com/PuerkitoBio/goquery v1.8.1 7 7 github.com/a-h/templ v0.2.476 8 - github.com/anaskhan96/soup v1.2.5 9 - github.com/chai2010/gettext-go v1.0.2 10 8 github.com/deckarep/golang-set v1.8.0 11 9 github.com/expr-lang/expr v1.15.7 12 10 github.com/fatih/color v1.13.0 ··· 14 12 github.com/goodsign/monday v1.0.1 15 13 github.com/metal3d/go-slugify v0.0.0-20160607203414-7ac2014b2f23 16 14 github.com/ortfo/db v0.0.0-20221017203805-89510110520c 15 + github.com/ortfo/gettext v1.0.3 17 16 golang.org/x/net v0.17.0 17 + golang.org/x/text v0.14.0 18 18 gopkg.in/yaml.v3 v3.0.1 19 19 ) 20 20 21 21 require ( 22 22 github.com/EdlinOrg/prominentcolor v1.0.0 // indirect 23 23 github.com/JohannesKaufmann/html-to-markdown v1.3.3 // indirect 24 + github.com/anaskhan96/soup v1.2.5 // indirect 24 25 github.com/andybalholm/cascadia v1.3.1 // indirect 25 26 github.com/davecgh/go-spew v1.1.1 // indirect 26 27 github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 // indirect ··· 52 53 github.com/xeipuuv/gojsonschema v1.2.0 // indirect 53 54 golang.org/x/image v0.0.0-20220413100746-70e8d0d3baa9 // indirect 54 55 golang.org/x/sys v0.13.0 // indirect 55 - golang.org/x/text v0.13.0 // indirect 56 56 gopkg.in/yaml.v2 v2.4.0 // indirect 57 57 )
+8 -4
go.sum
··· 12 12 github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= 13 13 github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c= 14 14 github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= 15 - github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= 16 - github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= 17 15 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 18 16 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 19 17 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= ··· 82 80 github.com/oliamb/cutter v0.2.2/go.mod h1:4BenG2/4GuRBDbVm/OPahDVqbrOemzpPiG5mi1iryBU= 83 81 github.com/ortfo/db v0.0.0-20221017203805-89510110520c h1:qIZv3968PJ5DcpPqrXmdAnbG46gFcfGxG0JBTelXpu8= 84 82 github.com/ortfo/db v0.0.0-20221017203805-89510110520c/go.mod h1:8UgSxcm0FgMJw0hrZo01yyyneIfSg8YaVqZfrSYmk2U= 83 + github.com/ortfo/gettext v1.0.3 h1:VwBOp/7GWHmmlJWYO6dwONsxt/Cb3boMDCRsRJm8BK4= 84 + github.com/ortfo/gettext v1.0.3/go.mod h1:CXAyleKuHH5nHspNA6WfRXcO/2SN+EWn151LBND93yo= 85 85 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 86 86 github.com/plus3it/gorecurcopy v0.0.1 h1:H7AgvM0N/uIo7o1PQRlewEGQ92BNr7DqbPy5lnR3uJI= 87 87 github.com/plus3it/gorecurcopy v0.0.1/go.mod h1:NvVTm4RX68A1vQbHmHunDO4OtBLVroT6CrsiqAzNyJA= ··· 123 123 golang.org/x/image v0.0.0-20220413100746-70e8d0d3baa9 h1:LRtI4W37N+KFebI/qV0OFiLUv4GLOWeEW5hn/KEJvxE= 124 124 golang.org/x/image v0.0.0-20220413100746-70e8d0d3baa9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= 125 125 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= 126 + golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 126 127 golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 127 128 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 128 129 golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= ··· 132 133 golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 133 134 golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 134 135 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= 136 + golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= 135 137 golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= 136 138 golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= 137 139 golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= 138 140 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 139 141 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 142 + golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 140 143 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 141 144 golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 142 145 golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ··· 159 162 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 160 163 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= 161 164 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= 162 - golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= 163 - golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= 165 + golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= 166 + golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= 164 167 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 165 168 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 166 169 golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= 170 + golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= 167 171 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 168 172 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 169 173 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+6 -21
i18n.go
··· 7 7 "net/http" 8 8 "os" 9 9 "path/filepath" 10 - "sort" 11 10 "strings" 12 11 "time" 13 12 14 13 "github.com/PuerkitoBio/goquery" 15 14 "github.com/a-h/templ" 16 - "github.com/chai2010/gettext-go/po" 17 15 mapset "github.com/deckarep/golang-set" 18 16 "github.com/ewen-lbh/portfolio/shared" 19 17 "github.com/fatih/color" 18 + "github.com/ortfo/gettext/po" 20 19 "golang.org/x/net/html" 20 + "golang.org/x/text/language" 21 21 ) 22 22 23 23 const TRANSLATABLE_MARKER_ATTRIBUTE = "i18n" ··· 27 27 // Translations holds both the gettext catalog from the .mo file 28 28 // and a po file object used to update the .po file (e.g. when discovering new translatable strings) 29 29 type Translations struct { 30 - poFile po.File 30 + poFile *po.File 31 31 seenMessages mapset.Set 32 32 missingMessages []po.Message 33 33 language string ··· 186 186 for _, languageCode := range languages { 187 187 translationsFilepath := fmt.Sprintf("i18n/%s.po", languageCode) 188 188 poFile, err := po.LoadFile(translationsFilepath) 189 + poFile.SetSourceLanguage(language.English) 189 190 if err != nil { 190 191 if os.IsNotExist(err) { 191 192 color.Yellow("[%s] Missing translation file for %s", languageCode, err) ··· 199 200 } 200 201 } else { 201 202 translations[languageCode] = &Translations{ 202 - poFile: *poFile, 203 + poFile: poFile, 203 204 seenMessages: mapset.NewSet(), 204 205 missingMessages: make([]po.Message, 0), 205 206 language: languageCode, ··· 289 290 dedupedMessages = append(dedupedMessages, msg) 290 291 } 291 292 } 292 - t.poFile.Messages = dedupedMessages 293 293 // Sort them to guarantee a stable write 294 - sort.Sort(ByMsgIdAndCtx(t.poFile.Messages)) 294 + t.poFile.Messages = dedupedMessages 295 295 t.poFile.Save(t.PoFilePath()) 296 - } 297 - 298 - // ByMsgIdAndCtx implement sorting gettext messages by their msgid+msgctxt 299 - type ByMsgIdAndCtx []po.Message 300 - 301 - func (b ByMsgIdAndCtx) Len() int { 302 - return len(b) 303 - } 304 - 305 - func (b ByMsgIdAndCtx) Less(i, j int) bool { 306 - return b[i].MsgId < b[j].MsgId || (b[i].MsgId == b[j].MsgId && b[i].MsgContext < b[j].MsgContext) 307 - } 308 - 309 - func (b ByMsgIdAndCtx) Swap(i, j int) { 310 - b[i], b[j] = b[j], b[i] 311 296 } 312 297 313 298 // GetTranslation returns the msgstr corresponding to msgid and msgctxt from the .po file
+35 -35
i18n/fr-unused-messages.yaml
··· 1 - # Generated at 2023-12-24 15:16:17.424568197 +0100 CET m=+0.334085318 1 + # Generated at 2023-12-24 18:31:48.393082265 +0100 CET m=+0.359160195 2 2 - "%s’s logo" 3 3 - "%v-day streak on Duolingo, %v league" 4 4 - "1104<sup>th</sup>" ··· 14 14 - "A radical new approach to building user interfaces. Whereas traditional frameworks like React and Vue do the bulk of their work in the browser, Svelte shifts that work into a compile step that happens when the app is built" 15 15 - "A set of brand resources like logos and banners that make up a brand’s visal identity" 16 16 - "A simple cross-platform library to create graphical user interfaces in <a href=\"/using/go\">Go</a> that work on Android, iOS, Linux, MacOS and Windows." 17 - - "Application Programming Interfaces, mostly <em>Web</em> APIs, meaning machine-redable sites that allow data processing and interaction without going to the client-facing website" 18 - - "Audiovisual & transmedia production company" 19 - - "Back home" 20 - - "Close" 21 - - "Computer science" 22 - - "Design and coded by hand" 23 - - "Designed and coded by hand" 24 - - "Digital audiovisual agency" 25 - - "Engineering consulting firm" 26 - - "Get a one-page PDF resume" 27 - - "Graphic designer & printer" 28 - - "Hi! I'm Ewen Le Bihan. I'm interested in almost anything that is both creative and digital." 29 - - "Hi, I'm Ewen Le Bihan." 30 - - "I also make electronic music." 31 - - "INP-ENSEEIHT (“École nationale supérieure d'électrotechnique, d'électronique, d'informatique, d'hydraulique et des télécommunication”), a top-ranking engineering graduate school based in Toulouse, France." 32 - - "If this doesn't work, you can <a href=\"%s\">go to %s</a> by clicking here" 33 - - "If this doesn't work, you can <a href=\"https://github.com/users/ewen-lbh/projects/2\">go to it by clicking here</a>" 34 - - "Internship @" 35 - - "I’ve been experimenting with sounds, their textures and their musicality since I was 7 years old." 36 - - "Made with <3 by Ewen Le Bihan" 37 - - "Mathematics & Physics" 38 - - "More..." 39 - - "My ranks at entrance exams" 40 - - "Native" 41 - - "Proudly\n <strong>\n not\n </strong>\n powered by Wordpress" 42 - - "Proudly <strong>not</strong> powered by Wordpress" 43 - - "Redirecting you to %s..." 44 - - "Redirecting you to my github incubator..." 45 - - "Server error. I f*cked up somewhere." 46 - - "This page does not exist (anymore)" 47 - - "Unknown error" 48 - - "Unknown year" 49 - - "Works" 50 17 - "about" 51 18 - "about me" 52 19 - "all" 53 20 - "also my music" 21 + - "Application Programming Interfaces, mostly <em>Web</em> APIs, meaning machine-redable sites that allow data processing and interaction without going to the client-facing website" 54 22 - "arts" 23 + - "Audiovisual & transmedia production company" 24 + - "Back home" 55 25 - "banner" 56 26 - "beautiful OFL typeface" 57 27 - "blog" 58 28 - {msgid: "browse works by...", msgctxt: "On homepage, as a section header for indexes"} 59 29 - "by" 60 30 - "card" 31 + - "Close" 61 32 - "collections" 33 + - "Computer science" 62 34 - "contact me" 63 35 - "cover art" 36 + - "Design and coded by hand" 37 + - "Designed and coded by hand" 38 + - "Digital audiovisual agency" 64 39 - "education" 65 40 - "efficient and comfortable programming language" 66 41 - "en français" 42 + - "Engineering consulting firm" 67 43 - "experience" 68 44 - "fine" 69 45 - "footnotes" 70 46 - "game" 47 + - "Get a one-page PDF resume" 48 + - "Graphic designer & printer" 49 + - "Hi, I'm Ewen Le Bihan." 50 + - "Hi! I'm Ewen Le Bihan. I'm interested in almost anything that is both creative and digital." 51 + - "hours\u00a0of use" 71 52 - "hours spent on this" 72 - - "hours\u00a0of use" 53 + - "I also make electronic music." 54 + - "I’ve been experimenting with sounds, their textures and their musicality since I was 7 years old." 73 55 - "iconography" 56 + - "If this doesn't work, you can <a href=\"%s\">go to %s</a> by clicking here" 57 + - "If this doesn't work, you can <a href=\"https://github.com/users/ewen-lbh/projects/2\">go to it by clicking here</a>" 58 + - "INP-ENSEEIHT (“École nationale supérieure d'électrotechnique, d'électronique, d'informatique, d'hydraulique et des télécommunication”), a top-ranking engineering graduate school based in Toulouse, France." 59 + - "Internship @" 74 60 - "intro" 75 61 - "latest release" 76 62 - "learn more" 77 63 - "loading image in full resolution…" 78 64 - "logo" 79 65 - "made with" 66 + - "Made with <3 by Ewen Le Bihan" 67 + - "Mathematics & Physics" 68 + - "More..." 80 69 - "most recent one" 81 70 - "music+visual" 71 + - "My ranks at entrance exams" 72 + - "Native" 82 73 - "others" 83 74 - "past releases" 84 75 - "programming<p class=\"inline\" i18n=\"\">work time tracked by <a href=\"https://wakatime.com\">WakaTime</a></p>" 85 76 - "project" 86 77 - "projects" 78 + - "Proudly\n <strong>\n not\n </strong>\n powered by Wordpress" 79 + - "Proudly <strong>not</strong> powered by Wordpress" 87 80 - "read more" 81 + - "Redirecting you to %s..." 82 + - "Redirecting you to my github incubator..." 88 83 - "results" 89 84 - "send a mail at" 85 + - "Server error. I f*cked up somewhere." 90 86 - "site" 91 87 - "skills" 92 88 - "slide into my dms at" ··· 97 93 - {msgid: "technologies used", msgctxt: "Link to /using on homepage"} 98 94 - "thanks" 99 95 - "the software, frameworks, libraries, materials and services I used to make this" 96 + - "This page does not exist (anymore)" 100 97 - "this site is not finished yet. Not all works have been added, and some pages are rough around the edges." 101 98 - "this work is part of the following collection" 102 99 - "thumbnail" 100 + - "Unknown error" 101 + - "Unknown year" 103 102 - "what" 104 103 - "work in progress" 105 104 - "work time tracked by <a href=\"https://wakatime.com\">WakaTime</a>" 105 + - "Works" 106 106 - "works by tag" 107 107 - "works made with" 108 108 - "works made with %s"
+290 -287
i18n/fr.po
··· 12 12 "Content-Transfer-Encoding: 8bit\n" 13 13 "X-Generator: Poedit 3.4.1\n" 14 14 15 - msgid "Search" 16 - msgstr "Rechercher" 15 + msgid "“Syntactically Awesome Style Sheets”—A mature, stable, and powerful professional grade CSS extension language." 16 + msgstr "“Syntactically Awesome Style Sheets”—Une extension puissante, stable et professionelle du langage CSS." 17 17 18 18 msgid "%s’s logo" 19 19 msgstr "Logo de %s" 20 20 21 21 msgid "%v-day streak on Duolingo, %v league" 22 22 msgstr "streak de %v jours sur Duolingo, ligue %v" 23 + 24 + msgid "↖ Back to the text" 25 + msgstr "↖ Retour au texte" 23 26 24 27 msgid "1104<sup>th</sup>" 25 28 msgstr "1104<sup>e</sup>" ··· 32 35 33 36 msgid "2022—now" 34 37 msgstr "2022—maintenant" 35 - 36 - msgid "A <a href=\"https://svelte.dev\">Svelte</a>-powered framework for building web applications of all sizes, with a beautiful development experience and flexible filesystem-based routing" 37 - msgstr "Un framework basé sur <a href=\"https://svelte.dev\">Svelte</a> pour la construction d'applications web de toutes tailles, avec une belle expérience de développement et un routage flexible basé sur le système de fichiers" 38 38 39 39 msgid "A <a href='https://svelte.dev'>Svelte</a>-powered framework for building web applications of all sizes, with a beautiful development experience and flexible filesystem-based routing" 40 40 msgstr "Un framework alimenté par <a href='https://svelte.dev'>Svelte</a> pour construire des applications web de toutes tailles, avec une belle expérience de développement et un routage flexible basé sur le système de fichiers." 41 41 42 - msgid "A PHP Model-View-Controller framework" 43 - msgstr "Un framework PHP Modèle-Vue-Contrôleur" 42 + msgid "A <a href=\"https://svelte.dev\">Svelte</a>-powered framework for building web applications of all sizes, with a beautiful development experience and flexible filesystem-based routing" 43 + msgstr "Un framework basé sur <a href=\"https://svelte.dev\">Svelte</a> pour la construction d'applications web de toutes tailles, avec une belle expérience de développement et un routage flexible basé sur le système de fichiers" 44 44 45 45 msgid "A bundler for javascript and friends. Packs many modules into a few bundled assets." 46 46 msgstr "Un bundler pour javascript et autres. Regroupe de nombreux modules en quelques fichiers groupés." ··· 66 66 msgid "A graphism technique that involves the composition of multiple images into a single, cohesive one" 67 67 msgstr "Une technique de graphisme qui implique la composition de plusieurs images en un ensemble cohérent" 68 68 69 + msgid "A high-level programming language that enables interactive web pages" 70 + msgstr "Un langage de programmation de haut niveau qui permet l'intéractivité de pages web" 71 + 69 72 msgid "A high-level Python Web framework that encourages rapid development and clean, pragmatic design" 70 73 msgstr "Un framework Web Python de haut niveau qui encourage un développement rapide et une conception propre et pragmatique" 71 74 72 - msgid "A high-level programming language that enables interactive web pages" 73 - msgstr "Un langage de programmation de haut niveau qui permet l'intéractivité de pages web" 75 + msgid "A high-performance template engine heavily influenced by <a href='https://haml.info/'>Haml</a> and implemented with JavaScript for Node.js and browsers." 76 + msgstr "Un moteur de template haute performance fortement influencé par <a href='https://haml.info/'>Haml</a> et implémenté avec JavaScript pour Node.js et les navigateurs." 74 77 75 78 msgid "A high-performance template engine heavily influenced by <a href=\"https://haml.info/\">Haml</a> and implemented with JavaScript for Node.js and browsers." 76 79 msgstr "Un moteur de template haute performance fortement influencé par <a href=\"https://haml.info\"/>Haml</a> et implémenté avec JavaScript pour Node.js et les navigateurs." 77 - 78 - msgid "A high-performance template engine heavily influenced by <a href='https://haml.info/'>Haml</a> and implemented with JavaScript for Node.js and browsers." 79 - msgstr "Un moteur de template haute performance fortement influencé par <a href='https://haml.info/'>Haml</a> et implémenté avec JavaScript pour Node.js et les navigateurs." 80 80 81 81 msgid "A high-quality typesetting & document preparation system" 82 82 msgstr "Un système de composition et de préparation des documents de haute qualité" ··· 90 90 msgid "A language for generating UML diagrams from textual descriptions" 91 91 msgstr "Un langage permettant de générer des diagrammes UML à partir de descriptions textuelles" 92 92 93 - msgid "A simple cross-platform library to create graphical user interfaces in [Go](/using/go) that work on Android, iOS, Linux, MacOS and Windows." 94 - msgstr "Une bibliothèque multiplateforme simple pour créer des interfaces graphiques en [Go](/using/go) qui fonctionnent sur Android, iOS, Linux, MacOS et Windows." 95 - 96 - msgid "A strongly typed, safe programming language" 97 - msgstr "Un langage de programmation sûr et fortement typé" 98 - 99 - msgid "Application Programming Interfaces, mostly _Web_ APIs, meaning machine-redable sites that allow data processing and interaction without going to the client-facing website" 100 - msgstr "Interfaces de programmation d'applications, principalement des API _Web_, c'est-à-dire des sites accessibles aux machines qui permettent le traitement des données et l'interaction sans passer par le site web orienté vers le client." 101 - 102 - msgid "Get my resume" 103 - msgstr "Voir mon CV" 104 - 105 93 msgid "A language which compiles to JavaScript that adds many features to assist in functional style programming. LiveScript is an indirect descendant of CoffeeScript, with which it has much compatibility." 106 94 msgstr "Un langage qui se compile en JavaScript et qui ajoute de nombreuses fonctionnalités pour aider à la programmation de style fonctionnel. LiveScript est un descendant indirect de CoffeeScript, avec lequel il a une grande compatibilité." 107 95 108 96 msgid "A library that parses command-line arguments based on a help message. “Don't write parser code: a good help message already has all the necessary information in it”" 109 97 msgstr "Une bibliothèque qui analyse les arguments de la ligne de commande sur la base d'un message d'aide. \"N'écrivez pas de code pour parser vos arguments : un bon message d'aide contient déjà toutes les informations nécessaires\"." 110 98 111 - msgid "Computer science" 112 - msgstr "Sciences du numérique" 113 - 114 99 msgid "A library that parses command-line arguments based on a help message. “Don’t write parser code: a good help message already has all the necessary information in it”" 115 100 msgstr "Une bibliothèque qui analyse les arguments de ligne de commande en fonction d'un message d'aide. « Ne pas écrire de code d'analyse : un bon message d'aide contient déjà toutes les informations nécessaires »" 116 101 ··· 131 116 132 117 msgid "A modern parsing library for Python. Lark can parse any context-free grammar" 133 118 msgstr "Une bibliothèque d'analyse syntaxique pour Python. Lark peut analyser n'importe quel langage non contextuel (langage algébrique)" 119 + 120 + msgid "A PHP Model-View-Controller framework" 121 + msgstr "Un framework PHP Modèle-Vue-Contrôleur" 134 122 135 123 msgid "A popular general-purpose scripting language that is especially suited to web development" 136 124 msgstr "Un langage de script polyvalent et populaire, particulièrement adapté au développement web" ··· 156 144 msgid "A radical new approach to building user interfaces. Whereas traditional frameworks like React and Vue do the bulk of their work in the browser, Svelte shifts that work into a compile step that happens when the app is built" 157 145 msgstr "Une approche radicalement nouvelle de la construction d'interfaces utilisateurs. Alors que les frameworks traditionnels comme React et Vue font l'essentiel de leur travail dans le navigateur, Svelte transforme ce travail en une étape de compilation qui se produit lors de la création de l'application" 158 146 159 - msgid "Hi! I'm Ewen Le Bihan." 160 - msgstr "Hey! Je suis Ewen Le Bihan." 161 - 162 - msgid "I'm interested in almost anything that is both creative and digital." 163 - msgstr "Je suis intéressé par tout ce qui est à la fois créatif et numérique." 164 - 165 - msgid "Proudly powered by <a href=\"https://github.com/ortfo\">ortfo</a>, my portfolio database management system and <a href=\"https://github.com/a-h/templ\">templ</a>" 166 - msgstr "Fièrement propulsé par <a href=\"https://github.com/ortfo\">ortfo</a>, mon système de gestion de base de données pour les portfolios et <a href=\"https://github.com/a-h/templ\">templ</a>" 167 - 168 - msgid "Source code" 169 - msgstr "Code source" 170 - 171 - msgid "Un système de génération de portfolios faits maison." 172 - msgstr "Un système de génération de portfolios faits maison." 173 - 174 - msgid "Works" 175 - msgstr "Œuvres" 176 - 177 - msgid "command line" 178 - msgstr "terminal" 179 - 180 - msgid "personal account" 181 - msgstr "compte personnel" 182 - 183 - msgid "web extension" 184 - msgstr "extension pour navigateur" 185 - 186 147 msgid "A radical new approach to building user interfaces. Whereas traditional frameworks like React and Vue do the bulk of their work in the browser, Svelte shifts that work into a compile step that happens when you build your app." 187 148 msgstr "Une approche radicale pour la création d'interfaces utilisateur. Alors que les frameworks traditionnels tels que React et Vue effectuent la majeure partie de leur travail dans le navigateur, Svelte déplace ce travail dans une étape de compilation qui se produit lors de la création de l'application." 188 149 ··· 198 159 msgid "A set of brand resources like logos and banners that make up a brand’s visal identity" 199 160 msgstr "Un ensemble de ressources telles que des logos et des bannières qui constituent l'identité visuelle d'une marque" 200 161 162 + msgid "A simple cross-platform library to create graphical user interfaces in [Go](/using/go) that work on Android, iOS, Linux, MacOS and Windows." 163 + msgstr "Une bibliothèque multiplateforme simple pour créer des interfaces graphiques en [Go](/using/go) qui fonctionnent sur Android, iOS, Linux, MacOS et Windows." 164 + 201 165 msgid "A simple cross-platform library to create graphical user interfaces in <a href=\"/using/go\">Go</a> that work on Android, iOS, Linux, MacOS and Windows." 202 166 msgstr "Une bibliothèque simple et multiplateforme pour créer des interfaces graphiques en <a href=\"/using/go\">Go</a> qui fonctionnent sur Android, iOS, Linux, MacOS et Windows." 203 167 ··· 207 171 msgid "A statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula." 208 172 msgstr "Langage de programmation de systèmes compilés, typés statiquement. Il combine des concepts à succès de langages matures comme Python, Ada et Modula." 209 173 174 + msgid "A strongly typed, safe programming language" 175 + msgstr "Un langage de programmation sûr et fortement typé" 176 + 210 177 msgid "A stylesheet language used to describe the presentation of a document written in HTML or XML" 211 178 msgstr "Un langage de feuille de style utilisé pour décrire la présentation d'un document écrit en HTML ou XML" 212 179 ··· 222 189 msgid "A vector graphics editor and design program" 223 190 msgstr "Un éditeur de graphiques vectoriels et un programme de design" 224 191 192 + msgid "a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache" 193 + msgstr "un serveur web qui peut aussi être utilisé comme un proxy inverse, un répartiteur de charge, un proxy de courrier et un cache HTTP" 194 + 225 195 msgid "A web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern" 226 196 msgstr "Un framework d'application web qui inclut tout ce qui est nécessaire pour créer des applications web basées sur une base de données selon le motif MVC" 227 197 198 + msgid "about" 199 + msgstr "à propos" 200 + 201 + msgid "about me" 202 + msgstr "à propos" 203 + 204 + msgid "abstract" 205 + msgstr "asbtrait" 206 + 207 + msgid "all" 208 + msgstr "tout" 209 + 210 + msgid "also my music" 211 + msgstr "ma musique également" 212 + 228 213 msgid "An advanced open source relational database" 229 214 msgstr "Une base de données relationnelle open source avancée" 230 215 ··· 243 228 msgid "An straightforward low-level open source programming language supported by Google featuring built-in concurrency and a robust standard library" 244 229 msgstr "Un langage de programmation open source supporté par Google, comprenant une concurrence intégrée et une bibliothèque standard robuste" 245 230 231 + msgid "an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium since 1999" 232 + msgstr "un format d'image vectorielle basé sur XML pour définir des graphiques bidimensionnels, ayant un support pour l'interactivité et l'animation. La spécification SVG est un standard ouvert développé par le World Wide Web Consortium depuis 1999" 233 + 246 234 msgid "Any piece of work related to languages (programming languages or natural languages)" 247 235 msgstr "Projets liés au langage (langages de programmation ou langages naturels)" 248 236 249 237 msgid "Any piece of work that involves programming, such as libraries, programs, scripts, et cætera." 250 238 msgstr "Toute œuvre qui implique de la programmation, telles que des bibliothèques, des programmes, des scripts, etc." 251 239 252 - msgid "Application Programming Interfaces, mostly <em>Web</em> APIs, meaning machine-redable sites that allow data processing and interaction without going to the client-facing website" 253 - msgstr "Interfaces de programmation d'application, principalement des <em>Web</em> APIs, signifiant des sites lisibles par machine qui permettent le traitement et l'interaction sans avoir à visiter le site web conçu pour les utilisateurs" 254 - 255 - msgid "Audiovisual & transmedia production company" 256 - msgstr "Companie de production audiovisuelle et transmédia" 257 - 258 - msgid "Back home" 259 - msgstr "Retour à l'accueil" 260 - 261 - msgid "Close" 262 - msgstr "Fermer" 263 - 264 - msgid "Design and coded by hand" 265 - msgstr "Site web fait maison" 266 - 267 - msgid "Designed and coded by hand" 268 - msgstr "Site web fait maison" 269 - 270 - msgid "Digital audiovisual agency" 271 - msgstr "Agence audiovisuelle numérique" 272 - 273 - msgid "Engineering consulting firm" 274 - msgstr "Société de conseil en ingénierie" 275 - 276 - msgid "Expressive, robust, feature-rich CSS language built for nodejs" 277 - msgstr "Langage CSS expressif, robuste, riche en fonctionnalités pour nodejs" 278 - 279 - msgid "Extensions or add-ons that add features to web browsers" 280 - msgstr "Extensions ou add-ons qui ajoutent des fonctionnalités à un navigateurs web" 240 + msgid "apis" 241 + msgstr "APIs" 281 242 282 - msgid "Free and open-source digital painting software" 283 - msgstr "Logiciel de peinture numérique gratuit et open source" 243 + msgid "app" 244 + msgstr "application" 284 245 285 - msgid "Get a one-page PDF resume" 286 - msgstr "CV monopage en PDF" 246 + msgid "Application Programming Interfaces, mostly _Web_ APIs, meaning machine-redable sites that allow data processing and interaction without going to the client-facing website" 247 + msgstr "Interfaces de programmation d'applications, principalement des API _Web_, c'est-à-dire des sites accessibles aux machines qui permettent le traitement des données et l'interaction sans passer par le site web orienté vers le client." 287 248 288 - msgid "Graphic designer & printer" 289 - msgstr "Graphiste & imprimeur" 249 + msgid "Application Programming Interfaces, mostly <em>Web</em> APIs, meaning machine-redable sites that allow data processing and interaction without going to the client-facing website" 250 + msgstr "Interfaces de programmation d'application, principalement des <em>Web</em> APIs, signifiant des sites lisibles par machine qui permettent le traitement et l'interaction sans avoir à visiter le site web conçu pour les utilisateurs" 290 251 291 - msgid "Hi! I'm Ewen Le Bihan. I'm interested in almost anything that is both creative and digital." 292 - msgstr "Hey! Je suis Ewen Le Bihan. Je suis intéressé par presque tout ce qui est à la fois créatif et digital." 293 - 294 - msgid "Hi, I'm Ewen Le Bihan." 295 - msgstr "Hey, je suis Ewen Le Bihan." 296 - 297 - msgid "I also make electronic music." 298 - msgstr "Je crée aussi de la musique." 299 - 300 - msgid "INP-ENSEEIHT (“École nationale supérieure d'électrotechnique, d'électronique, d'informatique, d'hydraulique et des télécommunication”), a top-ranking engineering graduate school based in Toulouse, France." 301 - msgstr "INP-ENSEEIHT (« École nationale supérieure d'électrotechnique, d'électronique, d'informatique, d'hydraulique et des télécommunication »), une école d'ingénieurs de premier plan basée à Toulouse." 302 - 303 - msgid "If this doesn't work, you can <a href=\"%s\">go to %s</a> by clicking here" 304 - msgstr "Si cela ne fonctionne pas, vous pouvez <a href=\"%s\">allez sur %s</a> en cliquant ici" 305 - 306 - msgid "If this doesn't work, you can <a href=\"https://github.com/users/ewen-lbh/projects/2\">go to it by clicking here</a>" 307 - msgstr "Si cela ne fonctionne pas, vous pouvez <a href=\"https://github.com/users/ewen-lbh/projects/2\">y aller en cliquant ici</a>" 308 - 309 - msgid "Images that represent a media, such as a video, in a single glance. Might be shown at a small size." 310 - msgstr "Images qui représentent un média, tel qu'une vidéo, d'un seul coup d'œil. Peut être affiché à petite taille." 311 - 312 - msgid "Internship @" 313 - msgstr "Stage à" 314 - 315 - msgid "I’ve been experimenting with sounds, their textures and their musicality since I was 7 years old." 316 - msgstr "J'expérimente les sons, leurs textures et leur musicalité depuis que j'ai 7 ans." 317 - 318 - msgid "Learn more" 319 - msgstr "En savoir plus" 320 - 321 - msgid "Made with <3 by Ewen Le Bihan" 322 - msgstr "Fait avec <3 par Ewen Le Bihan" 323 - 324 - msgid "Made with the intent to discover, not necessarily to be useful or aesthetic." 325 - msgstr "Réalisé dans le but de découvrir sans contrainte d'utilité ou d'esthétique." 326 - 327 - msgid "Mathematics & Physics" 328 - msgstr "Mathématiques & Physique" 329 - 330 - msgid "More..." 331 - msgstr "Plus..." 332 - 333 - msgid "Music covers for albums, EPs and singles" 334 - msgstr "Pochettes pour albums, EPs et singles" 335 - 336 - msgid "My ranks at entrance exams" 337 - msgstr "Mon classement aux concours d'entrée" 338 - 339 - msgid "Native" 340 - msgstr "Natif" 341 - 342 - msgid "Open Source design and prototyping platform meant for cross-domain teams. Non dependent on operating systems, Penpot is web based and works with open web standards (SVG)." 343 - msgstr "Plateforme de conception et prototypage open source visant des équipes multi-domaines. Non dépendante des systèmes d'exploitation, Penpot est un logiciel web et fonctionne avec les standards web ouverts (SVG)." 344 - 345 - msgid "Programs that run in the terminal, a text-based interface for computers." 346 - msgstr "Programmes qui s'exécutent dans une console, une interface de texte pour les ordinateurs." 347 - 348 - msgid "Proudly\n" 349 - " <strong>\n" 350 - " not\n" 351 - " </strong>\n" 352 - " powered by Wordpress" 353 - msgstr "Fièrement\n" 354 - " <strong>\n" 355 - " non\n" 356 - " </strong>\n" 357 - " propulsé par Wordpress" 358 - 359 - msgid "Proudly <strong>not</strong> powered by Wordpress" 360 - msgstr "Fièrement <strong>non</strong> propulsé par Wordpress" 361 - 362 - msgid "Redirecting you to %s..." 363 - msgstr "Redirection vers %s..." 364 - 365 - msgid "Redirecting you to my github incubator..." 366 - msgstr "Redirection vers mon incubateur github..." 367 - 368 - msgid "School projects and school-related projects" 369 - msgstr "Projets scolaires et projets liés à l'école" 370 - 371 - msgid "Server error. I f*cked up somewhere." 372 - msgstr "Erreur serveur. J'ai foiré quelque part." 373 - 374 - msgid "Set of glyphs (letters, punctuation marks and more) that define how text looks." 375 - msgstr "Ensemble de glyphes (lettres, signes de ponctuation et plus encore) qui définissent l'apparence du texte." 376 - 377 - msgid "Short introductory video sequences typically played at the beginning of every video" 378 - msgstr "Séquences vidéo introducientrières courtes qui sont typiquement jouées au début de chaque vidéo" 379 - 380 - msgid "The Intuitive Vue Framework" 381 - msgstr "Le Framework Vue Intuitif" 382 - 383 - msgid "The progressive JavaScript framework" 384 - msgstr "Un framework JavaScript progressif" 385 - 386 - msgid "The standard markup language for documents designed to be displayed in a web browser" 387 - msgstr "Le langage de balisage standard conçu pour représenter des pages web" 388 - 389 - msgid "The study of language" 390 - msgstr "L'étude du langage" 252 + msgid "apps" 253 + msgstr "applications" 391 254 392 255 msgid "arts" 393 256 msgstr "arts" 394 257 395 - msgid "education" 396 - msgstr "éducation" 397 - 398 - msgid "These are my creations." 399 - msgstr "Voici mes créations." 400 - 401 - msgid "This page does not exist (anymore)" 402 - msgstr "Cette page n'existe pas" 403 - 404 - msgid "Unknown error" 405 - msgstr "Erreur inconnue" 406 - 407 - msgid "Unknown year" 408 - msgstr "Année inconnue" 409 - 410 - msgid "User interfaces that utilize graphical elements such as icons, and images." 411 - msgstr "Intefaces utilisateur qui utilisent des éléments graphiques tels que des icônes et des images." 412 - 413 - msgid "Web sites, web apps and web-related libraries" 414 - msgstr "Sites web, applications web et bibliothèques liées au web" 415 - 416 - msgid "With a scientific side" 417 - msgstr "Avec un côté scientifique" 418 - 419 - msgid "experience" 420 - msgstr "expérience" 421 - 422 - msgid "a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache" 423 - msgstr "un serveur web qui peut aussi être utilisé comme un proxy inverse, un répartiteur de charge, un proxy de courrier et un cache HTTP" 424 - 425 - msgid "about" 426 - msgstr "à propos" 427 - 428 - msgid "about me" 429 - msgstr "à propos" 430 - 431 - msgid "abstract" 432 - msgstr "asbtrait" 433 - 434 - msgid "all" 435 - msgstr "tout" 436 - 437 - msgid "also my music" 438 - msgstr "ma musique également" 439 - 440 - msgid "an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium since 1999" 441 - msgstr "un format d'image vectorielle basé sur XML pour définir des graphiques bidimensionnels, ayant un support pour l'interactivité et l'animation. La spécification SVG est un standard ouvert développé par le World Wide Web Consortium depuis 1999" 442 - 443 - msgid "apis" 444 - msgstr "APIs" 445 - 446 - msgid "hours of use" 447 - msgstr "heures d'utilisation" 448 - 449 - msgid "app" 450 - msgstr "application" 451 - 452 - msgid "apps" 453 - msgstr "applications" 258 + msgid "Audiovisual & transmedia production company" 259 + msgstr "Companie de production audiovisuelle et transmédia" 454 260 455 261 msgid "automation" 456 262 msgstr "automatisation" 263 + 264 + msgid "Back home" 265 + msgstr "Retour à l'accueil" 457 266 458 267 msgid "banner" 459 268 msgstr "bannière" ··· 470 279 msgid "books" 471 280 msgstr "livres" 472 281 282 + msgctxt "On homepage, as a section header for indexes" 283 + msgid "browse works by..." 284 + msgstr "projets par..." 285 + 473 286 msgid "by" 474 287 msgstr "par" 475 288 ··· 481 294 482 295 msgid "cli" 483 296 msgstr "cli" 297 + 298 + msgid "Close" 299 + msgstr "Fermer" 484 300 485 301 msgid "collections" 486 302 msgstr "collections" 487 303 304 + msgid "command line" 305 + msgstr "terminal" 306 + 488 307 msgid "command-line" 489 308 msgstr "terminal" 490 309 491 310 msgid "compositing" 492 311 msgstr "compositing" 493 312 313 + msgid "Computer science" 314 + msgstr "Sciences du numérique" 315 + 494 316 msgid "contact" 495 317 msgstr "contact" 496 318 ··· 503 325 msgid "cover arts" 504 326 msgstr "pochettes" 505 327 328 + msgid "Design and coded by hand" 329 + msgstr "Site web fait maison" 330 + 331 + msgid "Designed and coded by hand" 332 + msgstr "Site web fait maison" 333 + 334 + msgid "Digital audiovisual agency" 335 + msgstr "Agence audiovisuelle numérique" 336 + 506 337 msgid "drawing" 507 338 msgstr "dessin" 508 339 509 340 msgid "drawings" 510 341 msgstr "dessins" 342 + 343 + msgid "education" 344 + msgstr "éducation" 511 345 512 346 msgid "efficient and comfortable programming language" 513 347 msgstr "langage de programmation efficient et confortable" ··· 515 349 msgid "en français" 516 350 msgstr "in english" 517 351 352 + msgid "Engineering consulting firm" 353 + msgstr "Société de conseil en ingénierie" 354 + 355 + msgid "experience" 356 + msgstr "expérience" 357 + 518 358 msgid "experiment" 519 359 msgstr "expérience" 520 360 ··· 524 364 msgid "experiments" 525 365 msgstr "expériences" 526 366 367 + msgid "Expressive, robust, feature-rich CSS language built for nodejs" 368 + msgstr "Langage CSS expressif, robuste, riche en fonctionnalités pour nodejs" 369 + 370 + msgid "Extensions or add-ons that add features to web browsers" 371 + msgstr "Extensions ou add-ons qui ajoutent des fonctionnalités à un navigateurs web" 372 + 527 373 msgid "fine" 528 374 msgstr "c'est pas grave" 529 375 ··· 536 382 msgid "footnotes" 537 383 msgstr "notes de bas de page" 538 384 385 + msgid "Free and open-source digital painting software" 386 + msgstr "Logiciel de peinture numérique gratuit et open source" 387 + 539 388 msgid "game" 540 389 msgstr "jeu" 541 390 542 391 msgid "games" 543 392 msgstr "jeux" 544 393 394 + msgid "Get a one-page PDF resume" 395 + msgstr "CV monopage en PDF" 396 + 397 + msgid "Get my resume" 398 + msgstr "Voir mon CV" 399 + 400 + msgid "Go back" 401 + msgstr "Retour" 402 + 403 + msgid "Graphic designer & printer" 404 + msgstr "Graphiste & imprimeur" 405 + 545 406 msgid "graphism" 546 407 msgstr "graphisme" 547 408 ··· 551 412 msgid "hardware" 552 413 msgstr "matériel informatique" 553 414 415 + msgid "Hi, I'm Ewen Le Bihan." 416 + msgstr "Hey, je suis Ewen Le Bihan." 417 + 418 + msgid "Hi! I'm Ewen Le Bihan." 419 + msgstr "Hey! Je suis Ewen Le Bihan." 420 + 421 + msgid "Hi! I'm Ewen Le Bihan. I'm interested in almost anything that is both creative and digital." 422 + msgstr "Hey! Je suis Ewen Le Bihan. Je suis intéressé par presque tout ce qui est à la fois créatif et digital." 423 + 424 + msgid "hours of use" 425 + msgstr "heures d'utilisation" 426 + 554 427 msgid "hours spent on this" 555 428 msgstr "heures passées là-dessus" 556 429 430 + msgid "I also make electronic music." 431 + msgstr "Je crée aussi de la musique." 432 + 557 433 msgid "i can work for you" 558 434 msgstr "je peux travailler pour vous" 559 435 436 + msgid "I'm interested in almost anything that is both creative and digital." 437 + msgstr "Je suis intéressé par tout ce qui est à la fois créatif et numérique." 438 + 439 + msgid "I’ve been experimenting with sounds, their textures and their musicality since I was 7 years old." 440 + msgstr "J'expérimente les sons, leurs textures et leur musicalité depuis que j'ai 7 ans." 441 + 560 442 msgid "iconography" 561 443 msgstr "icônes" 562 444 563 445 msgid "icons" 564 446 msgstr "icônes" 565 447 448 + msgid "If this doesn't work, you can <a href=\"%s\">go to %s</a> by clicking here" 449 + msgstr "Si cela ne fonctionne pas, vous pouvez <a href=\"%s\">allez sur %s</a> en cliquant ici" 450 + 451 + msgid "If this doesn't work, you can <a href=\"https://github.com/users/ewen-lbh/projects/2\">go to it by clicking here</a>" 452 + msgstr "Si cela ne fonctionne pas, vous pouvez <a href=\"https://github.com/users/ewen-lbh/projects/2\">y aller en cliquant ici</a>" 453 + 566 454 msgid "illustration" 567 455 msgstr "illustration" 568 456 569 457 msgid "illustrations" 570 458 msgstr "illustrations" 571 459 460 + msgid "Images that represent a media, such as a video, in a single glance. Might be shown at a small size." 461 + msgstr "Images qui représentent un média, tel qu'une vidéo, d'un seul coup d'œil. Peut être affiché à petite taille." 462 + 463 + msgid "INP-ENSEEIHT (“École nationale supérieure d'électrotechnique, d'électronique, d'informatique, d'hydraulique et des télécommunication”), a top-ranking engineering graduate school based in Toulouse, France." 464 + msgstr "INP-ENSEEIHT (« École nationale supérieure d'électrotechnique, d'électronique, d'informatique, d'hydraulique et des télécommunication »), une école d'ingénieurs de premier plan basée à Toulouse." 465 + 466 + msgid "Internship @" 467 + msgstr "Stage à" 468 + 572 469 msgid "intro" 573 470 msgstr "intro" 574 471 ··· 584 481 msgid "latest release" 585 482 msgstr "dernière sortie" 586 483 484 + msgid "Learn more" 485 + msgstr "En savoir plus" 486 + 587 487 msgid "learn more" 588 488 msgstr "en savoir plus" 589 489 590 - msgid "programming<p class=\"inline\" i18n=\"\">work time tracked by <a href=\"https://wakatime.com\">WakaTime</a></p>" 591 - msgstr "programmation<p class=\"inline\" i18n=\"\">temps de travail suivi par <a href=\"https://wakatime.com\">WakaTime</a></p>" 592 - 593 - msgid "results" 594 - msgstr "résultats" 595 - 596 490 msgid "linguistics" 597 491 msgstr "linguistique" 598 492 599 493 msgid "loading image in full resolution…" 600 494 msgstr "chargement de l'image en pleine résolution…" 601 495 602 - msgid "programming" 603 - msgstr "programmation" 604 - 605 496 msgid "logo" 606 497 msgstr "logo" 607 498 608 499 msgid "made with" 609 500 msgstr "réalisé avec" 610 501 502 + msgid "Made with <3 by Ewen Le Bihan" 503 + msgstr "Fait avec <3 par Ewen Le Bihan" 504 + 505 + msgid "Made with the intent to discover, not necessarily to be useful or aesthetic." 506 + msgstr "Réalisé dans le but de découvrir sans contrainte d'utilité ou d'esthétique." 507 + 611 508 msgid "math" 612 509 msgstr "maths" 613 510 511 + msgid "Mathematics & Physics" 512 + msgstr "Mathématiques & Physique" 513 + 514 + msgid "More..." 515 + msgstr "Plus..." 516 + 614 517 msgid "most recent one" 615 518 msgstr "la plus récente" 616 519 ··· 619 522 620 523 msgid "music" 621 524 msgstr "musique" 525 + 526 + msgid "Music covers for albums, EPs and singles" 527 + msgstr "Pochettes pour albums, EPs et singles" 622 528 623 529 msgid "music+visual" 624 530 msgstr "musique+vidéo" ··· 629 535 msgid "my music" 630 536 msgstr "ma musique" 631 537 538 + msgid "My ranks at entrance exams" 539 + msgstr "Mon classement aux concours d'entrée" 540 + 541 + msgid "Native" 542 + msgstr "Natif" 543 + 544 + msgid "Open Source design and prototyping platform meant for cross-domain teams. Non dependent on operating systems, Penpot is web based and works with open web standards (SVG)." 545 + msgstr "Plateforme de conception et prototypage open source visant des équipes multi-domaines. Non dépendante des systèmes d'exploitation, Penpot est un logiciel web et fonctionne avec les standards web ouverts (SVG)." 546 + 632 547 msgid "open-source code" 633 548 msgstr "code open-source" 634 549 ··· 638 553 msgid "past releases" 639 554 msgstr "autres sorties" 640 555 556 + msgid "personal account" 557 + msgstr "compte personnel" 558 + 641 559 msgid "poster" 642 560 msgstr "affiche" 643 561 ··· 647 565 msgid "program" 648 566 msgstr "programme" 649 567 568 + msgid "programming" 569 + msgstr "programmation" 570 + 571 + msgid "programming<p class=\"inline\" i18n=\"\">work time tracked by <a href=\"https://wakatime.com\">WakaTime</a></p>" 572 + msgstr "programmation<p class=\"inline\" i18n=\"\">temps de travail suivi par <a href=\"https://wakatime.com\">WakaTime</a></p>" 573 + 650 574 msgid "programs" 651 575 msgstr "programmes" 652 576 577 + msgid "Programs that run in the terminal, a text-based interface for computers." 578 + msgstr "Programmes qui s'exécutent dans une console, une interface de texte pour les ordinateurs." 579 + 653 580 msgid "project" 654 581 msgstr "projet" 655 582 656 583 msgid "projects" 657 584 msgstr "projets" 658 585 586 + msgid "Proudly\n" 587 + " <strong>\n" 588 + " not\n" 589 + " </strong>\n" 590 + " powered by Wordpress" 591 + msgstr "Fièrement\n" 592 + " <strong>\n" 593 + " non\n" 594 + " </strong>\n" 595 + " propulsé par Wordpress" 596 + 597 + msgid "Proudly <strong>not</strong> powered by Wordpress" 598 + msgstr "Fièrement <strong>non</strong> propulsé par Wordpress" 599 + 600 + msgid "Proudly powered by <a href=\"https://github.com/ortfo\">ortfo</a>, my portfolio database management system and <a href=\"https://github.com/a-h/templ\">templ</a>" 601 + msgstr "Fièrement propulsé par <a href=\"https://github.com/ortfo\">ortfo</a>, mon système de gestion de base de données pour les portfolios et <a href=\"https://github.com/a-h/templ\">templ</a>" 602 + 659 603 msgid "random thoughts" 660 604 msgstr "pensées diverses" 661 605 662 606 msgid "read more" 663 607 msgstr "plus" 664 608 609 + msgid "Redirecting you to %s..." 610 + msgstr "Redirection vers %s..." 611 + 612 + msgid "Redirecting you to my github incubator..." 613 + msgstr "Redirection vers mon incubateur github..." 614 + 615 + msgid "results" 616 + msgstr "résultats" 617 + 665 618 msgid "school" 666 619 msgstr "scolaire" 667 620 621 + msgid "School projects and school-related projects" 622 + msgstr "Projets scolaires et projets liés à l'école" 623 + 668 624 msgid "science" 669 625 msgstr "science" 670 626 627 + msgid "Search" 628 + msgstr "Rechercher" 629 + 671 630 msgid "send a mail at" 672 631 msgstr "envoyer un mail à" 673 632 633 + msgid "Server error. I f*cked up somewhere." 634 + msgstr "Erreur serveur. J'ai foiré quelque part." 635 + 636 + msgid "Set of glyphs (letters, punctuation marks and more) that define how text looks." 637 + msgstr "Ensemble de glyphes (lettres, signes de ponctuation et plus encore) qui définissent l'apparence du texte." 638 + 639 + msgid "Short introductory video sequences typically played at the beginning of every video" 640 + msgstr "Séquences vidéo introducientrières courtes qui sont typiquement jouées au début de chaque vidéo" 641 + 674 642 msgid "site" 675 643 msgstr "site" 676 644 ··· 686 654 msgid "slide into my twitter dms" 687 655 msgstr "contactez-moi par message privé sur twitter à" 688 656 689 - msgid "this work is part of the following collection" 690 - msgstr "ce projet fait partie de la collection suivante" 691 - 692 - msgid "thumbnails" 693 - msgstr "miniatures" 694 - 695 - msgid "typeface" 696 - msgstr "police de caractères" 697 - 698 - msgid "typefaces" 699 - msgstr "polices de caractères" 700 - 701 - msgid "what" 702 - msgstr "quoi" 657 + msgid "Source code" 658 + msgstr "Code source" 703 659 704 660 msgid "source code at" 705 661 msgstr "code source disponible à" ··· 710 666 msgid "technologies i use" 711 667 msgstr "les technologies que j'utilise" 712 668 669 + msgctxt "Link to /using on homepage" 670 + msgid "technologies used" 671 + msgstr "technologies utilisées" 672 + 713 673 msgid "thanks" 714 674 msgstr "merci à" 715 675 676 + msgid "The Intuitive Vue Framework" 677 + msgstr "Le Framework Vue Intuitif" 678 + 679 + msgid "The progressive JavaScript framework" 680 + msgstr "Un framework JavaScript progressif" 681 + 716 682 msgid "the software, frameworks, libraries, materials and services I used to make this" 717 683 msgstr "les logiciels, frameworks, bibliothèques, matériaux et services utilisés pour cette création" 718 684 685 + msgid "The standard markup language for documents designed to be displayed in a web browser" 686 + msgstr "Le langage de balisage standard conçu pour représenter des pages web" 687 + 688 + msgid "The study of language" 689 + msgstr "L'étude du langage" 690 + 691 + msgid "These are my creations." 692 + msgstr "Voici mes créations." 693 + 694 + msgid "This page does not exist (anymore)" 695 + msgstr "Cette page n'existe pas" 696 + 719 697 msgid "this site is not finished yet. Not all works have been added, and some pages are rough around the edges." 720 698 msgstr "ce site n'est pas encore terminé. Il manque des projets, et certaines pages ne sont pas finiolées." 699 + 700 + msgid "this work is part of the following collection" 701 + msgstr "ce projet fait partie de la collection suivante" 721 702 722 703 msgid "thumbnail" 723 704 msgstr "miniature" 724 705 706 + msgid "thumbnails" 707 + msgstr "miniatures" 708 + 709 + msgid "typeface" 710 + msgstr "police de caractères" 711 + 712 + msgid "typefaces" 713 + msgstr "polices de caractères" 714 + 725 715 msgid "typography" 726 716 msgstr "typographie" 727 717 718 + msgid "Un système de génération de portfolios faits maison." 719 + msgstr "Un système de génération de portfolios faits maison." 720 + 721 + msgid "Unknown error" 722 + msgstr "Erreur inconnue" 723 + 724 + msgid "Unknown year" 725 + msgstr "Année inconnue" 726 + 727 + msgid "User interfaces that utilize graphical elements such as icons, and images." 728 + msgstr "Intefaces utilisateur qui utilisent des éléments graphiques tels que des icônes et des images." 729 + 728 730 msgid "visual identities" 729 731 msgstr "identités visuelles" 730 732 ··· 737 739 msgid "web" 738 740 msgstr "web" 739 741 742 + msgid "web extension" 743 + msgstr "extension pour navigateur" 744 + 740 745 msgid "web extensions" 741 746 msgstr "extensions web" 742 747 743 - msgid "work time tracked by <a href=\"https://wakatime.com\">WakaTime</a>" 744 - msgstr "temps de travail suivi par <a href=\"https://wakatime.com\">WakaTime</a>" 748 + msgid "Web sites, web apps and web-related libraries" 749 + msgstr "Sites web, applications web et bibliothèques liées au web" 750 + 751 + msgid "what" 752 + msgstr "quoi" 753 + 754 + msgid "With a scientific side" 755 + msgstr "Avec un côté scientifique" 745 756 746 757 msgid "work in progress" 747 758 msgstr "work in progress" 748 759 760 + msgid "work time tracked by <a href=\"https://wakatime.com\">WakaTime</a>" 761 + msgstr "temps de travail suivi par <a href=\"https://wakatime.com\">WakaTime</a>" 762 + 763 + msgid "Works" 764 + msgstr "Œuvres" 765 + 749 766 msgid "works" 750 767 msgstr "projets" 751 768 ··· 758 775 msgid "works made with %s" 759 776 msgstr "fait avec %s" 760 777 761 - msgid "“Syntactically Awesome Style Sheets”—A mature, stable, and powerful professional grade CSS extension language." 762 - msgstr "“Syntactically Awesome Style Sheets”—Une extension puissante, stable et professionelle du langage CSS." 763 - 764 - msgid "↖ Back to the text" 765 - msgstr "↖ Retour au texte" 766 - 767 - msgctxt "Link to /using on homepage" 768 - msgid "technologies used" 769 - msgstr "technologies utilisées" 770 - 771 - msgctxt "On homepage, as a section header for indexes" 772 - msgid "browse works by..." 773 - msgstr "projets par..." 774 -