validate-website 1.5.0 → 1.5.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd93ea8bbe188ac4cb33752c93a971f75106971e
4
- data.tar.gz: 9322f70f9cd7433c35d201f0d042117ff2974147
3
+ metadata.gz: c65e3f9388f034ec69209330e67dc5e9632fa823
4
+ data.tar.gz: 25359a6ab01c83a3efb2c37ee70eebfa113934a5
5
5
  SHA512:
6
- metadata.gz: e1d587ebf07f0f3f93ee4f7ebfd96112919c435eeddda17874c76423ee0e1500865a0afe0f5112c459cd900023445e818d347380800c306c0d398ed9369de710
7
- data.tar.gz: 818c8b7f437a4afb0482914fd799e0e0701013ee9b772db56abe3e3aa2259f08cba9444fff65df278b10a8e4144aa08021e38515419ccfebe832c717d22fa63b
6
+ metadata.gz: d2f71b8f527d92e028c003229b00db082af5db0a3ae687dc6f9cb317f0d266257c75a99a197990d8bd4256bce438a8122ddeba4dba4330df191ace341573cc75
7
+ data.tar.gz: a130c9cc8853e06a105ca4f3f26f2081442bbf8612a5a378825b8728dab13fabb5cb72a495aea7e2379d334b1c1d9af87cf2b8a0e4d0594282c1b449f2bd81e5
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'rake/testtask'
2
2
  require 'rubocop/rake_task'
3
3
 
4
- task default: [:test]
4
+ task default: [:test, :rubocop]
5
5
 
6
6
  # install asciidoc libxml2-utils xmlto docbook-xsl docbook-xml
7
7
  desc 'Update manpage from asciidoc file'
@@ -16,5 +16,6 @@ task spec: :test
16
16
 
17
17
  desc 'Execute rubocop'
18
18
  RuboCop::RakeTask.new(:rubocop) do |t|
19
- t.options = ['-D'] # display cop name
19
+ t.options = ['--display-cop-names', '--display-style-guide']
20
+ t.fail_on_error = true
20
21
  end
@@ -26,12 +26,17 @@ module ValidateWebsite
26
26
  EXIT_FAILURE_NOT_FOUND = 65
27
27
  EXIT_FAILURE_MARKUP_NOT_FOUND = 66
28
28
 
29
- def initialize(options = {}, validation_type)
29
+ # Initialize core ValidateWebsite class
30
+ # @example
31
+ # new({ site: "https://example.com/" }, :crawl)
32
+ # @param [Hash] options
33
+ # @return [NilClass]
34
+ def initialize(options, validation_type)
30
35
  @not_founds_count = 0
31
36
  @errors_count = 0
32
37
  @options = Parser.parse(options, validation_type).to_h
33
38
  @site = @options[:site]
34
- @service_url = @options[:html5_validator_service_url]
39
+ @service_url = @options[:html5_validator_service_url]
35
40
  Validator.html5_validator_service_url = @service_url if @service_url
36
41
  puts color(:note, "validating #{@site}\n", @options[:color])
37
42
  end
@@ -1,4 +1,4 @@
1
1
  # Version file for ValidateWebsite
2
2
  module ValidateWebsite
3
- VERSION = '1.5.0'.freeze
3
+ VERSION = '1.5.3'.freeze
4
4
  end
@@ -0,0 +1,10 @@
1
+ require File.expand_path('../test_helper', __FILE__)
2
+
3
+ describe ValidateWebsite::Core do
4
+ describe 'invalid options' do
5
+ it 'raise ArgumentError on wrong validation_type' do
6
+ proc { ValidateWebsite::Core.new({ color: false }, :fail) }
7
+ .must_raise ArgumentError
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,163 @@
1
+ require File.expand_path('../test_helper', __FILE__)
2
+
3
+ describe ValidateWebsite::Crawl do
4
+ before do
5
+ WebMock.reset!
6
+ stub_request(:get, /#{TEST_DOMAIN}/).to_return(status: 200)
7
+ _out, _err = capture_io do
8
+ @validate_website = ValidateWebsite::Crawl.new(color: false)
9
+ end
10
+ end
11
+
12
+ describe 'options' do
13
+ it 'can change user-agent' do
14
+ ua = %{Linux / Firefox 29: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) \
15
+ Gecko/20100101 Firefox/29.0}
16
+ _out, _err = capture_io do
17
+ v = ValidateWebsite::Crawl.new(site: TEST_DOMAIN, user_agent: ua)
18
+ v.crawl
19
+ v.crawler.user_agent.must_equal ua
20
+ end
21
+ end
22
+
23
+ it 'can change html5 validator service url' do
24
+ s = 'http://localhost:8888/'
25
+ _out, _err = capture_io do
26
+ ValidateWebsite::Crawl.new(site: TEST_DOMAIN,
27
+ html5_validator_service_url: s)
28
+ ValidateWebsite::Validator.html5_validator_service_url.must_equal s
29
+ end
30
+ end
31
+ end
32
+
33
+ describe('cookies') do
34
+ it 'can set cookies' do
35
+ cookies = 'tz=Europe%2FBerlin; guid=ZcpBshbtStgl9VjwTofq'
36
+ _out, _err = capture_io do
37
+ v = ValidateWebsite::Crawl.new(site: TEST_DOMAIN, cookies: cookies)
38
+ v.crawl
39
+ v.crawler.cookies.cookies_for_host(v.host).must_equal v.default_cookies
40
+ end
41
+ end
42
+ end
43
+
44
+ describe('html') do
45
+ it 'extract url' do
46
+ name = 'xhtml1-strict'
47
+ file = File.join('test', 'data', "#{name}.html")
48
+ page = FakePage.new(name,
49
+ body: open(file).read,
50
+ content_type: 'text/html')
51
+ @validate_website.site = page.url
52
+ _out, _err = capture_io do
53
+ @validate_website.crawl
54
+ end
55
+ @validate_website.crawler.history.size.must_equal 5
56
+ end
57
+
58
+ it 'extract link' do
59
+ name = 'html4-strict'
60
+ file = File.join('test', 'data', "#{name}.html")
61
+ page = FakePage.new(name,
62
+ body: open(file).read,
63
+ content_type: 'text/html')
64
+ @validate_website.site = page.url
65
+ _out, _err = capture_io do
66
+ @validate_website.crawl
67
+ end
68
+ @validate_website.crawler.history.size.must_equal 98
69
+ end
70
+ end
71
+
72
+ describe('css') do
73
+ describe 'extract urls' do
74
+ it 'crawl css and extract url' do
75
+ page = FakePage.new('test.css',
76
+ body: '.t {background-image: url(pouet);}
77
+ .t {background-image: url(/image/pouet.png)}
78
+ .t {background-image: url(/image/pouet_42.png)}
79
+ .t {background-image: url(/image/pouet)}',
80
+ content_type: 'text/css')
81
+ @validate_website.site = page.url
82
+ _out, _err = capture_io do
83
+ @validate_website.crawl
84
+ end
85
+ @validate_website.crawler.history.size.must_equal 5
86
+ end
87
+
88
+ it 'should extract url with single quote' do
89
+ page = FakePage.new('test.css',
90
+ body: ".test {background-image: url('pouet');}",
91
+ content_type: 'text/css')
92
+ @validate_website.site = page.url
93
+ _out, _err = capture_io do
94
+ @validate_website.crawl
95
+ end
96
+ @validate_website.crawler.history.size.must_equal 2
97
+ end
98
+
99
+ it 'should extract url with double quote' do
100
+ page = FakePage.new('test.css',
101
+ body: ".test {background-image: url(\"pouet\");}",
102
+ content_type: 'text/css')
103
+ @validate_website.site = page.url
104
+ _out, _err = capture_io do
105
+ @validate_website.crawl
106
+ end
107
+ @validate_website.crawler.history.size.must_equal 2
108
+ end
109
+
110
+ it 'should extract url with params' do
111
+ page = FakePage.new('test.css',
112
+ body: '.test {background-image: url(/t?size=s);}',
113
+ content_type: 'text/css')
114
+ @validate_website.site = page.url
115
+ _out, _err = capture_io do
116
+ @validate_website.crawl
117
+ end
118
+ @validate_website.crawler.history.size.must_equal 2
119
+ end
120
+
121
+ it 'should not extract invalid urls' do
122
+ page = FakePage.new('test.css',
123
+ body: '.test {background-image: url(/test.png");}',
124
+ content_type: 'text/css')
125
+ @validate_website.site = page.url
126
+ _out, _err = capture_io do
127
+ @validate_website.crawl
128
+ end
129
+ @validate_website.crawler.history.size.must_equal 1
130
+ end
131
+ end
132
+
133
+ describe 'validate css syntax' do
134
+ before do
135
+ _out, _err = capture_io do
136
+ @validate_website = ValidateWebsite::Crawl.new(color: false,
137
+ css_syntax: true)
138
+ end
139
+ end
140
+ it 'should be invalid with bad urls' do
141
+ page = FakePage.new('test.css',
142
+ body: '.test {background-image: url(/test.png");}',
143
+ content_type: 'text/css')
144
+ @validate_website.site = page.url
145
+ _out, _err = capture_io do
146
+ @validate_website.crawl
147
+ end
148
+ @validate_website.errors_count.must_equal 1
149
+ end
150
+
151
+ it 'should be invalid with syntax error' do
152
+ page = FakePage.new('test.css',
153
+ body: ' /**/ .foo {} #{bar {}',
154
+ content_type: 'text/css')
155
+ @validate_website.site = page.url
156
+ _out, _err = capture_io do
157
+ @validate_website.crawl
158
+ end
159
+ @validate_website.errors_count.must_equal 1
160
+ end
161
+ end
162
+ end
163
+ end
@@ -0,0 +1,2 @@
1
+ .t { background-image: url(/image/42.png) }
2
+ /**/ .foo {} #{bar {}
@@ -0,0 +1,239 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html lang="fr">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
+ <title>Debian -- Le système d'exploitation universel </title>
6
+ <link rev="made" href="mailto:webmaster@debian.org">
7
+ <link rel="shortcut icon" href="favicon.ico">
8
+ <meta name="Keywords" content="debian, GNU, linux, unix, open source, libre, DFSG">
9
+ <meta name="Description" content="Debian GNU/Linux est une distribution libre du système d'exploitation GNU/Linux. Elle est développée et mise à jour grâce au travail de nombreux utilisateurs qui offrent leur temps et leurs efforts.">
10
+ <meta name="Generator" content="WML 2.0.11 (19-Aug-2006)">
11
+ <meta name="Modified" content="2010-10-22 23:28:09">
12
+ <link rel="alternate" type="application/rss+xml"
13
+ title="Annonces de sécurité Debian (titres seulement)" href="security/dsa">
14
+ <link rel="alternate" type="application/rss+xml"
15
+ title="Annonces de sécurité Debian (résumés)" href="security/dsa-long">
16
+ <link href="./debian.css" rel="stylesheet" type="text/css">
17
+ <link href="./debian-fr.css" rel="stylesheet" type="text/css" media="all">
18
+ </head>
19
+ <body>
20
+ <div id="header">
21
+ <div id="upperheader">
22
+ <div id="logo">
23
+ <a href="./"><img src="./logos/openlogo-nd-50.png" width="50" height="61" alt=""></a>
24
+ <a href="./" rel="start"><img src="Pics/debian.png" width="179" height="61" alt="Projet Debian"></a>
25
+ </div> <!-- end logo -->
26
+ </div> <!-- end upperheader -->
27
+ <!--UdmComment-->
28
+ <div id="navbar">
29
+ <p class="hidecss"><a href="#inner">Sauter le menu</a></p>
30
+ <ul>
31
+ <li><a href="intro/about">À propos de Debian</a></li>
32
+ <li><a href="./News/">Actualités</a></li>
33
+ <li><a href="distrib/">Obtenir Debian</a></li>
34
+ <li><a href="./support">Assistance</a></li>
35
+ <li><a href="./devel/">Le&nbsp;coin&nbsp;du&nbsp;développeur</a></li>
36
+ <li><a href="./sitemap">Plan du site</a></li>
37
+ <li><a href="http://search.debian.org/">Recherche</a></li>
38
+ </ul>
39
+ </div> <!-- end navbar -->
40
+ </div> <!-- end header -->
41
+ <!--/UdmComment-->
42
+ <div id="outer">
43
+ <div id="inner">
44
+ <div id="leftcol">
45
+ <!--UdmComment-->
46
+ <ul>
47
+ <li><a href="intro/about">À&nbsp;propos&nbsp;de&nbsp;Debian</a>
48
+ <ul>
49
+ <li><a href="./social_contract">Notre&nbsp;contrat&nbsp;social</a></li>
50
+ <li><a href="./intro/free">Logiciel&nbsp;libre</a></li>
51
+ <li><a href="./partners/">Partenaires</a></li>
52
+ <li><a href="./donations">Dons</a></li>
53
+ <li><a href="./contact">Nous&nbsp;contacter</a></li>
54
+ </ul>
55
+ </li>
56
+ <li><a href="./News/">Actualités</a>
57
+ <ul>
58
+ <li><a href="./News/project/">Nouvelles du projet</a></li>
59
+ <li><a href="./events/">Événements</a></li>
60
+ </ul>
61
+ </li>
62
+ <li><a href="distrib/">Obtenir Debian</a>
63
+ <ul>
64
+ <li><a href="CD/vendors/">Vendeurs de CD</a></li>
65
+ <li><a href="CD/">Images ISO de CD</a></li>
66
+ <li><a href="distrib/netinst">Installation par le réseau</a></li>
67
+ <li><a href="distrib/pre-installed">Préinstallée</a></li>
68
+ </ul>
69
+ </li>
70
+ <li><a href="distrib/packages">Paquets&nbsp;Debian</a></li>
71
+ <li><a href="doc/">Documentation</a>
72
+ <ul>
73
+ <li><a href="./releases/">Dernière&nbsp;version</a></li>
74
+ <li><a href="./releases/stable/installmanual">Manuel&nbsp;d'installation</a></li>
75
+ <li><a href="doc/books">Livres&nbsp;Debian</a></li>
76
+ </ul>
77
+ </li>
78
+ <li><a href="./support">Assistance</a>
79
+ <ul>
80
+ <li><a href="./international/">Debian&nbsp;et&nbsp;l'international</a></li>
81
+ <li><a href="./security/">Informations&nbsp;sur&nbsp;la&nbsp;sécurité</a></li>
82
+ <li><a href="Bugs/">Rapports de bogues</a></li>
83
+ <li><a href="MailingLists/">Listes&nbsp;de&nbsp;diffusion</a></li>
84
+ <li><a href="http://lists.debian.org/">Archives&nbsp;des&nbsp;listes&nbsp;de&nbsp;diffusion</a></li>
85
+ <li><a href="./ports/">Portages/Architectures</a></li>
86
+ </ul>
87
+ </li>
88
+ <li><a href="misc/">Divers</a></li>
89
+ <li><a href="./intro/help">Aider Debian</a></li>
90
+ <li><a href="./devel/">Le&nbsp;coin&nbsp;du&nbsp;développeur</a></li>
91
+ <li><a href="./sitemap">Plan du site</a></li>
92
+ <li><a href="http://search.debian.org/">Recherche</a></li>
93
+ </ul>
94
+ <form method="get" action="http://search.debian.org/">
95
+ <p>
96
+ <input type="text" name="q" size="12">
97
+ </p>
98
+ </form>
99
+ <p>
100
+ <a href="./sponsor.html"><img src="sponsor_img.jpg" alt="Le site de notre sponsor" width="102" height="60"></a>
101
+ </p>
102
+ <p>
103
+ <a href="http://validator.w3.org/check/referer"><img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" width="88" height="31"></a>
104
+ </p>
105
+ <p>
106
+ <img src="http://jigsaw.w3.org/css-validator/images/vcss"
107
+ alt="Valid CSS!" width="88" height="31">
108
+ </p>
109
+ <!--/UdmComment-->
110
+ </div> <!-- end leftcol -->
111
+ <div id="maincol">
112
+ <a href="./News/2009/20090214"><img src="Pics/lennybanner_indexed.png" alt="Debian 5.0 - Le système d'exploitation universel" width="380" height="310" style="margin-right: 10px; float: left;"></a>
113
+ <h2>Qu'est-ce que Debian&nbsp;?</h2>
114
+ <p><a href="http://www.debian.org/">Debian</a> est un système d'exploitation
115
+ <a href="intro/free">libre</a> pour votre ordinateur. Un système d'exploitation
116
+ est la suite des programmes de base et des utilitaires qui permettent à un
117
+ ordinateur de fonctionner. Debian utilise le noyau
118
+ <a href="http://www.kernel.org/">Linux</a> (le c&oelig;ur d'un système d'exploitation),
119
+ mais la plupart des outils de base du système proviennent du
120
+ <a href="http://www.gnu.org/">projet GNU</a>&nbsp;; d'où le nom GNU/Linux.</p>
121
+ <p>Debian GNU/Linux est bien plus qu'un simple système d'exploitation&nbsp;:
122
+ il contient plus de 25000
123
+ <a href="distrib/packages">paquets</a>&nbsp;; les paquets sont des composants
124
+ logiciels précompilés conçus pour s'installer facilement sur votre machine.</p>
125
+ <p><a href="intro/about">Suite...</a>
126
+ <hr>
127
+ <h2>Pour commencer</h2>
128
+ <p>La <a href="releases/stable/">dernière version stable de Debian</a> est
129
+ la 5.0. La dernière mise à jour de cette version a été publiée
130
+ le 4 septembre 2010. Vous pouvez aussi accéder aux
131
+ <a href="releases/">autres versions disponibles de Debian</a>.</p>
132
+ <p>Si vous souhaitez commencer à utiliser Debian, vous pouvez facilement
133
+ <a href="distrib/">en obtenir une copie</a>, et ensuite suivre les
134
+ <a href="releases/stable/installmanual">instructions d'installation</a>
135
+ pour l'installer.</p>
136
+ <p>Si vous mettez à niveau votre système depuis une ancienne version vers
137
+ la dernière version stable publiée, veuillez lire les
138
+ <a href="releases/stable/releasenotes">notes de publication</a>
139
+ avant de commencer.</p>
140
+ <p>Pour obtenir de l'aide concernant l'utilisation ou la configuration
141
+ de Debian, consultez nos pages sur la <a href="doc/">documentation</a>
142
+ et l'<a href="support">assistance</a>.</p>
143
+ <p>Les utilisateurs qui parlent une langue autre que l'anglais peuvent
144
+ consulter la section sur l'<a href="international/">international</a>.</p>
145
+ <p>Les personnes ayant un autre système qu'Intel x86 peuvent
146
+ consulter la section sur les <a href="ports/">portages</a>.</p>
147
+ <hr>
148
+ <h2>Actualités</h2>
149
+ <p><tt>[19 octobre 2010]</tt> <strong><a href="News/2010/20101019">Debian sur le point d'accueillir officiellement les contributeurs non empaqueteurs</a></strong><br>
150
+ <tt>[7 octobre 2010]</tt> <strong><a href="News/2010/20101007">Debian à la rencontre de la <q>Society for Neuroscience</q></a></strong><br>
151
+ <tt>[8 septembre 2010]</tt> <strong><a href="News/2010/20100908">Paris Mini-DebConf 2010</a></strong><br>
152
+ <tt>[5 septembre 2010]</tt> <strong><a href="News/2010/20100905">Le service de rétroportages (« backports ») devient officiel</a></strong><br>
153
+ <tt>[4 septembre 2010]</tt> <strong><a href="News/2010/20100904">Publication de la mise à jour de Debian GNU/Linux 5.0.6</a></strong><br>
154
+ <tt>[3 septembre 2010]</tt> <strong><a href="News/2010/20100903">Conférence 2010 de la communauté Debian italienne - du 17 au 19 septembre à Pérouse, Italie</a></strong><br>
155
+ </p>
156
+ <p>Pour les communiqués plus anciens, consultez la suite de la page <a href="./News/">actualités</a>.
157
+ Si vous voulez recevoir un courrier (en anglais) à chaque fois qu'un communiqué paraît, abonnez-vous
158
+ à la <a href="MailingLists/debian-announce">liste de diffusion debian-announce</a>.</p>
159
+ <hr>
160
+ <h2>Annonces de sécurité</h2>
161
+ <p><tt>[22 octobre 2010]</tt> <strong><a href="security/2010/dsa-2122">DSA-2122 glibc</a></strong> - missing input sanitization <br>
162
+ <tt>[19 octobre 2010]</tt> <strong><a href="security/2010/dsa-2121">DSA-2121 typo3-src</a></strong> - several vulnerabilities <br>
163
+ <tt>[12 octobre 2010]</tt> <strong><a href="security/2010/dsa-2120">DSA-2120 postgresql-8.3</a></strong> - privilege escalation <br>
164
+ <tt>[12 octobre 2010]</tt> <strong><a href="security/2010/dsa-2119">DSA-2119 poppler</a></strong> - several vulnerabilities <br>
165
+ <tt>[8 octobre 2010]</tt> <strong><a href="security/2010/dsa-2118">DSA-2118 subversion</a></strong> - logic flaw <br>
166
+ <tt>[4 octobre 2010]</tt> <strong><a href="security/2010/dsa-2117">DSA-2117 apr-util</a></strong> - denial of service <br>
167
+ <tt>[4 octobre 2010]</tt> <strong><a href="security/2010/dsa-2116">DSA-2116 freetype</a></strong> - integer overflow <br>
168
+ <tt>[29 septembre 2010]</tt> <strong><a href="security/2010/dsa-2115">DSA-2115 moodle</a></strong> - several vulnerabilities <br>
169
+ <tt>[26 septembre 2010]</tt> <strong><a href="security/2010/dsa-2114">DSA-2114 git-core</a></strong> - buffer overflow <br>
170
+ <tt>[20 septembre 2010]</tt> <strong><a href="security/2010/dsa-2113">DSA-2113 drupal6</a></strong> - several vulnerabilities <br>
171
+ <tt>[20 septembre 2010]</tt> <strong><a href="security/2010/dsa-2112">DSA-2112 bzip2</a></strong> - integer overflow <br>
172
+ </p>
173
+ <p>Pour les annonces de sécurité, consultez la <a href="./security/">
174
+ page sécurité</a>.
175
+ Si vous voulez recevoir les annonces de sécurité (en anglais) dès leur parution, abonnez-vous
176
+ à la <a href="http://lists.debian.org/debian-security-announce/">liste de diffusion debian-security-announce</a>.</p>
177
+ </div> <!-- end maincol -->
178
+ <div class="clr"></div>
179
+ </div> <!-- end inner -->
180
+ <div id="footer">
181
+ <hr class="hidecss">
182
+ <!--UdmComment-->
183
+ <p>
184
+ Cette page est aussi disponible dans les langues suivantes&nbsp;:
185
+ </p><p class="navpara">
186
+ <a href="index.ar.html" title="arabe" hreflang="ar" lang="ar" rel="alternate">&#1593;&#1585;&#1576;&#1610;&#1577;&nbsp;(Arabiya)</a>
187
+ <a href="index.bg.html" title="bulgare" hreflang="bg" lang="bg" rel="alternate">&#1041;&#1098;&#1083;&#1075;&#1072;&#1088;&#1089;&#1082;&#1080;&nbsp;(B&#601;lgarski)</a>
188
+ <a href="index.ca.html" title="catalan" hreflang="ca" lang="ca" rel="alternate">catal&agrave;</a>
189
+ <a href="index.cs.html" title="tchèque" hreflang="cs" lang="cs" rel="alternate">&#269;esky</a>
190
+ <a href="index.da.html" title="danois" hreflang="da" lang="da" rel="alternate">dansk</a>
191
+ <a href="index.de.html" title="allemand" hreflang="de" lang="de" rel="alternate">Deutsch</a>
192
+ <a href="index.el.html" title="grec" hreflang="el" lang="el" rel="alternate">&#917;&#955;&#955;&#951;&#957;&#953;&#954;&#940;&nbsp;(Ellinika)</a>
193
+ <a href="index.en.html" title="anglais" hreflang="en" lang="en" rel="alternate">English</a>
194
+ <a href="index.es.html" title="espagnol" hreflang="es" lang="es" rel="alternate">espa&ntilde;ol</a>
195
+ <a href="index.eo.html" title="espéranto" hreflang="eo" lang="eo" rel="alternate">Esperanto</a>
196
+ <a href="index.ko.html" title="coréen" hreflang="ko" lang="ko" rel="alternate">&#54620;&#44397;&#50612;&nbsp;(Hangul)</a>
197
+ <a href="index.hy.html" title="arménien" hreflang="hy" lang="hy" rel="alternate">&#1344;&#1377;&#1397;&#1381;&#1408;&#1381;&#1398;&nbsp;(hayeren)</a>
198
+ <a href="index.hr.html" title="croate" hreflang="hr" lang="hr" rel="alternate">hrvatski</a>
199
+ <a href="index.it.html" title="italien" hreflang="it" lang="it" rel="alternate">Italiano</a>
200
+ <a href="index.he.html" title="hébreu" hreflang="he" lang="he" rel="alternate">&#1506;&#1489;&#1512;&#1497;&#1514;&nbsp;(ivrit)</a>
201
+ <a href="index.lt.html" title="lituanien" hreflang="lt" lang="lt" rel="alternate">Lietuvi&#371;</a>
202
+ <a href="index.hu.html" title="hongrois" hreflang="hu" lang="hu" rel="alternate">magyar</a>
203
+ <a href="index.nl.html" title="néerlandais" hreflang="nl" lang="nl" rel="alternate">Nederlands</a>
204
+ <a href="index.ja.html" title="japonais" hreflang="ja" lang="ja" rel="alternate">&#26085;&#26412;&#35486;&nbsp;(Nihongo)</a>
205
+ <a href="index.nb.html" title="norvégien" hreflang="nb" lang="nb" rel="alternate">norsk&nbsp;(bokm&aring;l)</a>
206
+ <a href="index.pl.html" title="polonais" hreflang="pl" lang="pl" rel="alternate">polski</a>
207
+ <a href="index.pt.html" title="portugais" hreflang="pt" lang="pt" rel="alternate">Portugu&ecirc;s</a>
208
+ <a href="index.ro.html" title="roumain" hreflang="ro" lang="ro" rel="alternate">rom&acirc;n&#259;</a>
209
+ <a href="index.ru.html" title="russe" hreflang="ru" lang="ru" rel="alternate">&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081;&nbsp;(Russkij)</a>
210
+ <a href="index.sk.html" title="slovaque" hreflang="sk" lang="sk" rel="alternate">slovensky</a>
211
+ <a href="index.fi.html" title="finnois" hreflang="fi" lang="fi" rel="alternate">suomi</a>
212
+ <a href="index.sv.html" title="suédois" hreflang="sv" lang="sv" rel="alternate">svenska</a>
213
+ <a href="index.ta.html" title="tamoul" hreflang="ta" lang="ta" rel="alternate">&#2980;&#2990;&#3007;&#2996;&#3021;&nbsp;(Tamil)</a>
214
+ <a href="index.tr.html" title="turc" hreflang="tr" lang="tr" rel="alternate">T&uuml;rk&ccedil;e</a>
215
+ <a href="index.uk.html" title="ukrainien" hreflang="uk" lang="uk" rel="alternate">&#1091;&#1082;&#1088;&#1072;&#1111;&#1085;&#1089;&#1100;&#1082;&#1072;&nbsp;(ukrajins'ka)</a>
216
+ <a href="index.zh-cn.html" title="chinois (Chine)" hreflang="zh-CN" lang="zh-CN" rel="alternate">&#20013;&#25991;(&#31616;)</a>
217
+ <a href="index.zh-hk.html" title="chinois (Hong Kong)" hreflang="zh-HK" lang="zh-HK" rel="alternate">&#20013;&#25991;(HK)</a>
218
+ <a href="index.zh-tw.html" title="chinois (Taïwan)" hreflang="zh-TW" lang="zh-TW" rel="alternate">&#20013;&#25991;(&#32321;)</a>
219
+ </p><p>
220
+ Comment configurer la <a href="./intro/cn">langue par défaut du document</a>
221
+ </p>
222
+ <!--/UdmComment-->
223
+ <hr>
224
+ <!--UdmComment-->
225
+ <div id="fineprint">
226
+ <p>Pour signaler un problème sur le site web, envoyez un courriel en anglais à <a href="mailto:debian-www@lists.debian.org">debian-www@lists.debian.org</a> ou en français à <a href="mailto:debian-l10n-french@lists.debian.org">debian-l10n-french@lists.debian.org</a>. Pour obtenir d'autres informations, référez-vous à la <a href="./contact">page contact</a> de Debian.</p>
227
+ <p>
228
+ Dernière modification&nbsp;: vendredi 22 octobre 2010 23:28:09 UTC
229
+ <br>
230
+ Copyright &copy; 1997-2010
231
+ <a href="http://www.spi-inc.org/">SPI</a>; voir <a href="./license" rel="copyright">les termes de la licence</a>.<br>
232
+ Debian est une <a href="./trademark">marque déposée</a> de Software in the Public Interest, Inc.
233
+ </p>
234
+ </div>
235
+ <!--/UdmComment-->
236
+ </div> <!-- end footer -->
237
+ </div> <!-- end outer -->
238
+ </body>
239
+ </html>