diff options
Diffstat (limited to 'spec/fixtures')
53 files changed, 1392 insertions, 352 deletions
diff --git a/spec/fixtures/comments.yml b/spec/fixtures/comments.yml index b73385a55..44db44d54 100644 --- a/spec/fixtures/comments.yml +++ b/spec/fixtures/comments.yml @@ -1,3 +1,18 @@ +# == Schema Information +# +# Table name: comments +# +# id :integer not null, primary key +# user_id :integer not null +# comment_type :string(255) default("internal_error"), not null +# info_request_id :integer +# body :text not null +# visible :boolean default(TRUE), not null +# created_at :datetime not null +# updated_at :datetime not null +# locale :text default(""), not null +# + silly_comment: visible: t updated_at: 2008-08-13 01:25:17.486939 diff --git a/spec/fixtures/files/blog_feed.atom b/spec/fixtures/files/blog_feed.atom new file mode 100644 index 000000000..f49693938 --- /dev/null +++ b/spec/fixtures/files/blog_feed.atom @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rss version="2.0" + xmlns:content="http://purl.org/rss/1.0/modules/content/" + xmlns:wfw="http://wellformedweb.org/CommentAPI/" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:atom="http://www.w3.org/2005/Atom" + xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" + xmlns:slash="http://purl.org/rss/1.0/modules/slash/" + > + +<channel> + <title>A Blog Feed</title> + <atom:link href="http://example.com/feed/" rel="self" type="application/rss+xml" /> + <link>http://www.example.com</link> + <description>Stuff</description> + <lastBuildDate>Tue, 30 Apr 2013 14:34:15 +0000</lastBuildDate> + <language>en</language> + <sy:updatePeriod>hourly</sy:updatePeriod> + <sy:updateFrequency>1</sy:updateFrequency> + <generator>http://wordpress.org/?v=3.3.2</generator> + <item> + <title>Example Post</title> + <link>http://www.example.com/example-post</link> + <comments>http://www.example.com/example-post#comments</comments> + <pubDate>Mon, 01 Apr 2013 19:26:08 +0000</pubDate> + <dc:creator>Example Blogger</dc:creator> + <category><![CDATA[FOI]]></category> + + <guid isPermaLink="false">http://www.example.com/?id=333</guid> + <description><![CDATA[An example post [...]]]></description> + <content:encoded><![CDATA[<h3>A blog post</h3> +<p>Example post</p> +]]></content:encoded> + <wfw:commentRss>http://www.example.com/feed/</wfw:commentRss> + <slash:comments>2</slash:comments> + </item> + + </channel> +</rss> diff --git a/spec/fixtures/files/document-pdf.email b/spec/fixtures/files/document-pdf.email new file mode 100644 index 000000000..f4fc6f0fe --- /dev/null +++ b/spec/fixtures/files/document-pdf.email @@ -0,0 +1,110 @@ +From authority@example.org Tue Dec 3 11:13:02 2013 +Return-path: <authority@example.org> +Envelope-to: requester@example.org +Delivery-date: Tue, 03 Dec 2013 11:13:00 +0000 +From: Test Authority <authority@example.org> +To: requester@example.org +Subject: testing a PDF attachment with the wrong content-type +Date: Tue, 03 Dec 2013 11:12:45 +0000 +Message-ID: <87li09xuasdfasdfpoija@blahblah> +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="=-=-=" + +--=-=-= +Content-Type: text/plain + +Here's a PDF attachement which has a document/pdf content-type, +when it really should be application/pdf. + + +--=-=-= +Content-Type: application/pdf +Content-Disposition: attachment; filename=tiny-example.pdf +Content-Transfer-Encoding: base64 +Content-Description: a very small example PDF + +JVBERi0xLjUKJbXtrvsKMyAwIG9iago8PCAvTGVuZ3RoIDQgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRl +RGVjb2RlCj4+CnN0cmVhbQp4nCvkMlAAwaJ0Bf1EA4X0Yi6nEC5DA1M9IwNLYzNjsBwS18hIz9TI +0tBSwdzIQs/Y3MLAzEQhJJdLP03XQBeoUCEkjStawyM1JydfUTM2xIvLNYQrkAsAJG8VmQplbmRz +dHJlYW0KZW5kb2JqCjQgMCBvYmoKICAgOTIKZW5kb2JqCjIgMCBvYmoKPDwKICAgL0V4dEdTdGF0 +ZSA8PAogICAgICAvYTAgPDwgL0NBIDEgL2NhIDEgPj4KICAgPj4KICAgL0ZvbnQgPDwKICAgICAg +L2YtMC0wIDUgMCBSCiAgID4+Cj4+CmVuZG9iago2IDAgb2JqCjw8IC9UeXBlIC9QYWdlCiAgIC9Q +YXJlbnQgMSAwIFIKICAgL01lZGlhQm94IFsgMCAwIDU5NS4yNzU1NzQgODQxLjg4OTc3MSBdCiAg +IC9Db250ZW50cyAzIDAgUgogICAvR3JvdXAgPDwKICAgICAgL1R5cGUgL0dyb3VwCiAgICAgIC9T +IC9UcmFuc3BhcmVuY3kKICAgICAgL0kgdHJ1ZQogICAgICAvQ1MgL0RldmljZVJHQgogICA+Pgog +ICAvUmVzb3VyY2VzIDIgMCBSCj4+CmVuZG9iago3IDAgb2JqCjw8IC9MZW5ndGggOCAwIFIKICAg +L0ZpbHRlciAvRmxhdGVEZWNvZGUKICAgL0xlbmd0aDEgMzcxNgo+PgpzdHJlYW0KeJzlVnt0lMUV +v/P9vtndZB/5drMbiUlww7ookJCQECCAzYJBBSrlETXYxgayxIjQJAQVTOOCFAREgwKLAtIUkSpE +mlIkG2OtVN4xrZXH8Y0gFGkjRouoa5j0btCe0/boOW3/6OnpzM58cx9z5/7ud+fuR4KI4mkBgbxl +s6dVvXnmiTlECBJpt5bdPddLd6TlE8mXiIQqr7p9dvXgu2cSmZmmbbfPml9etrfAzOtG1o9UzJgW +7O56fQSRZRbzhlQwwxYx3cL0ZqavrJg9d97lhs76lgNM95pVWTaNKM7N9HtMp86eNq9KrzFVM93F +tLdqzoyqEeaPeRmXyj5UkEblKqyXy83srZkuD9j0L8n0pbDIkKZT1p4jHYPIONJxpCM70Znu9Kc7 +08t16qpBStdpFTY7Pv9kjqkfCTrItkbIo2SljIDbskZ7VqeF8SYzUuWwOJFKus3o6sjh3yDKGnmK +F9k7JtqFKEnMZaO5Th/PvoOHtHcPHbrY55A8enGDFowO0PZf5DBpVN39vh7Sa8lNKVQVuJI8Im6J +Zan0PCNki0209mpxRWwrUlM8msVjofGaK2FMKp92vmOP05XPzp8633HKOMf9/DlmZAf6FaRVpTWk +vZrWmSYLqEAUaAWeghSZYc6yZMVlxFdSpajUKj2VKXEl1aJEeNJ7i9ycIUM9DuHzktOg3BwyDxS+ +PiazHuraYWtvnrl/etmrd6rzar/o13VSmCPaU0vXtTi02259cf/gwdv7Z4hhIl4kimvVO3vW7ty+ +kV877eZpvsnNMe/TTGs1YaHrdHaaw9ORHbAbMiAnylJZJTulqSdKvt2RiMn9RcfX8biL42Gly2hc +INHU4qIWW8S1olecK2ESXJ4xvXrgX4JunMsO+AqSa6nWFDKHLKG4UHzIWmsL2UOOUELICDlrXQ3J +nclORtrH5HEnMdS8wX2vyokh9fWJzVrN6sZta1Y1Nq7qFC51rvNj9ZFw4viZgwfPfHBg/9kN6oDq +UB8y+HzG6BbDOLU0kRdzlPMBFEd5gQQzLdIXahazFND5ahhd45usRcUtRN0vDZs6siMnn19U1qmu +V7LFLrJ6rROtKPHnenycGvBB5LW1tbk3eZTizKhW68UM6mmCrcdumo10bQI/e5PBHAeFqFtMEdPE +PHGfeFTbp73t7evN9g73Nqb36e6O3QFqEJNFKcvrvpInsjz/b/JvboLPeFusExvERu4NX/V93A+I +Az0a8lv3/6tN/Ns7tb+j0DPr/5Ev/0eNszdCbdx301baILYwVc7sauY0aDtoMd3FnJdFm1imZTJv +C3XSYdZ8gNqwVScxjnKZS/SG1Oi8KKKdbCOfb0a+2aSTPkHfqU/WI/oZvZ2G6jV6u16q14hcbJI3 +yy088rFXc3E9vYIi4jjV0PM4i1y8oBfqDjqOdmyl03xK7F22UT1tplr2xS0qKaTVapOZs1+20zru +lSxv5yw9zN49LxbRUXoMunYDbRRHGVcbXaBFKNJCnBy5Wjn7v59ttfP+dVSj880V8aS0Acxj7/ms +6T1zGjLl0Z7eybeslopos4nLktnHp8QitkW8LDpMq6iBDuMHqMZbYrHu05/Wb6D6SxFAKdWz7XWx +PaZyMZ+xx3ptzLp2j14qttJZvdQ8nW3vjSHiM3dqkxlROb3A4x6TwZhGiMVYxp7GpGnUbh6nZ/F+ +tmCuY9RElcijmbyqpe20gzIRpnq21IPXNFRe4J0b9BOMuV48pF2gdhRSPyrXz3Gs+S+GwkTNZpPU +oQnK8BpNmn9ssCkwqdh7YGp6ZsY/kF7D7G2iiU32+d5Id/fEYj1FTm2SqU3wW5p0v+/ENwlPZGaM +n1jsbbo4pvArq2NKC5k3pZiXMYrZzB9T2COLHdok/fwbW9rkLavwLjeW+4YvN2YMz7xUI7Sie2dN +WLj6hwkjP6UrLD053L47tfTr52fHurbb58TdxGRMeKmq8GyerdKI7Cc/OxadZJ/zT9XGxBlazil7 +UO+gai2fduunqRp5sdre0wp5NLChuTyaYk7Evld6rJhQRAOogiuzxjX58dipukdL4qce0RYEur9U +iLrxhR+f5+CzMC448KnCeYW/+PGJAx+H0enHR8tHyY8UzoXxYRgdUfw5ij8pnB2OD0bjjMIfc3D6 +1BR5OoxTrHhqCt4/mSXfj+JkFk4ovKdwPAfvuvFOGG8rvOXCm3V4oxWvKxxj9WN1OHrkenm0Dkeu +x+HXUuRhhddS8AeFVxV+r/A7hfYwXmnrLV9RaOuNQzk4qLBvsVPuS8XeJOxReFnhtwq7FV5S+I3C +iwq/VnhBoVXheSdalvhli0KkuVVGFJp3lcjmVjQv0Hc955e7SgLd2BXQn/Njp8Kvwtih8EuFJoVf +KGwP4lkHGrf5ZWMQ27a65DY/trrwDDv9TBRPK/xcYYvCUy5sVnhyk0M+mYNNDvwsiAZWaQjjpwob +n7DJjQpP2LBhfbLcEMT6dYZcn4x1Bh6Px2MKa8N2uVYhbMca3rQmjNWrHHL11VjlwKNRPLKyVT6i +sLK+RK5sxcoFev3DfllfgvqA/rAfDymseHCgXKHw4EAsZ5jLR2HZUqtc5sZSKx5gxgNBLOFILfFj +sRM/UVh0v1MuUrjfiYUKCxRCCoHu++rq5H0KdXX4cRC1RR5Z68e9CvMV5jlwjw13x+MuhblR1EQx +J4rqKKoUKhV+pDArHXcqzHSOljOn4A6FijrczkS5wgyFoEKZwnSFacNRGsVtNpQofF/hVoWpxfFy +ahTF8bglKVnekoObFW7ik28ajSIPpghDTumFyW5MGpcoJynwN8j3FCbcaMgJCjca+K7CeJaMVxg3 +1pDjEjE2zS7HGrjBjusVrgtjTBiFCtdqmfLaKEa3YtR4BBQKFL5zjUt+x41rRibIa1wYOcIuRwa6 +EzDCjuEK+QrDhrrlsCiGDjHkUDeG5FnlEAN5VgzujVw7cgZZZY7CICuys6wy244sKwZmxsmBBjLj +kJGDAf39ckAQ/fu5ZH8/+rlw9VV+efUoXOVHX79V9k2A34orFXwKfRKQzjjTXfAGcUUUvRlC7yDS +7EjlCKYqpERx+WgkM5Gs0CuIyzhSlykk8aakZHgU3AqJCi5WcCk4GatzNIw6JAThULDbkqRdwcba +tiRYFeINxClYWM2iYHbDFITOQp0zwAPmQnGVNaSWCWGAFEREBBc/JAb8LzT6bzvwrS3tr1SHeSwK +ZW5kc3RyZWFtCmVuZG9iago4IDAgb2JqCiAgIDI0MDIKZW5kb2JqCjkgMCBvYmoKPDwgL0xlbmd0 +aCAxMCAwIFIKICAgL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicXVAxbsQgEOx5xZZ3 +xQnbykUpkKXo0ri4JIqTB2BYHKQYEMaFf58FThcpBcwsuzOMll+Gl8HZBPw9ejViAmOdjrj6LSqE +CWfrWNuBtirdqnKrRQbGSTzua8JlcMYzIYB/UHNNcYfDs/YTHhkA8LeoMVo3w+HrMtancQvhBxd0 +CRrW96DRkN1Vhle5IPAiPg2a+jbtJ5L9TXzuAaErdVsjKa9xDVJhlG5GJpqmB2FMz9Dpf71zVUxG +fcvIxMMTTTYNAROP58IJiKvKVeamcvITXVs4Qfa+ueRf8jru8dUWIyUvOyuRc1jr8L7W4ENWlfML +jQ547AplbmRzdHJlYW0KZW5kb2JqCjEwIDAgb2JqCiAgIDI0NgplbmRvYmoKMTEgMCBvYmoKPDwg +L1R5cGUgL0ZvbnREZXNjcmlwdG9yCiAgIC9Gb250TmFtZSAvUlFaWlJTK0RlamFWdVNhbnMKICAg +L0ZvbnRGYW1pbHkgKERlamFWdSBTYW5zKQogICAvRmxhZ3MgMzIKICAgL0ZvbnRCQm94IFsgLTEw +MjAgLTQxNSAxNjgwIDExNjYgXQogICAvSXRhbGljQW5nbGUgMAogICAvQXNjZW50IDkyOAogICAv +RGVzY2VudCAtMjM1CiAgIC9DYXBIZWlnaHQgMTE2NgogICAvU3RlbVYgODAKICAgL1N0ZW1IIDgw +CiAgIC9Gb250RmlsZTIgNyAwIFIKPj4KZW5kb2JqCjUgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKICAg +L1N1YnR5cGUgL1RydWVUeXBlCiAgIC9CYXNlRm9udCAvUlFaWlJTK0RlamFWdVNhbnMKICAgL0Zp +cnN0Q2hhciAzMgogICAvTGFzdENoYXIgMTExCiAgIC9Gb250RGVzY3JpcHRvciAxMSAwIFIKICAg +L0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKICAgL1dpZHRocyBbIDAgNDAwIDAgMCAwIDAgMCAw +IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg +MCAwIDAgMCA3NTEgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw +IDAgMCAwIDAgMCA2MTUgMCAwIDAgMCAwIDAgMjc3IDAgMCA2MTEgXQogICAgL1RvVW5pY29kZSA5 +IDAgUgo+PgplbmRvYmoKMSAwIG9iago8PCAvVHlwZSAvUGFnZXMKICAgL0tpZHMgWyA2IDAgUiBd +CiAgIC9Db3VudCAxCj4+CmVuZG9iagoxMiAwIG9iago8PCAvQ3JlYXRvciAoY2Fpcm8gMS4xMi4x +NiAoaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3JnKSkKICAgL1Byb2R1Y2VyIChjYWlybyAxLjEyLjE2 +IChodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmcpKQo+PgplbmRvYmoKMTMgMCBvYmoKPDwgL1R5cGUg +L0NhdGFsb2cKICAgL1BhZ2VzIDEgMCBSCj4+CmVuZG9iagp4cmVmCjAgMTQKMDAwMDAwMDAwMCA2 +NTUzNSBmIAowMDAwMDA0MDYyIDAwMDAwIG4gCjAwMDAwMDAyMDUgMDAwMDAgbiAKMDAwMDAwMDAx +NSAwMDAwMCBuIAowMDAwMDAwMTg0IDAwMDAwIG4gCjAwMDAwMDM2NzkgMDAwMDAgbiAKMDAwMDAw +MDMxNCAwMDAwMCBuIAowMDAwMDAwNTQyIDAwMDAwIG4gCjAwMDAwMDMwMzggMDAwMDAgbiAKMDAw +MDAwMzA2MSAwMDAwMCBuIAowMDAwMDAzMzg1IDAwMDAwIG4gCjAwMDAwMDM0MDggMDAwMDAgbiAK +MDAwMDAwNDEyNyAwMDAwMCBuIAowMDAwMDA0MjU3IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUg +MTQKICAgL1Jvb3QgMTMgMCBSCiAgIC9JbmZvIDEyIDAgUgo+PgpzdGFydHhyZWYKNDMxMAolJUVP +Rgo= +--=-=-=-- + diff --git a/spec/fixtures/files/email-folding-example-1.txt.expected b/spec/fixtures/files/email-folding-example-1.txt.expected index 801542288..45dabf156 100644 --- a/spec/fixtures/files/email-folding-example-1.txt.expected +++ b/spec/fixtures/files/email-folding-example-1.txt.expected @@ -8,3 +8,10 @@ On behalf of James Hall, Chief Executive Identity and Passport Service <<9032 C Pollard final response.doc>> +FOLDED_QUOTED_SECTION + +FOLDED_QUOTED_SECTION + + +FOLDED_QUOTED_SECTION + diff --git a/spec/fixtures/files/email-folding-example-10.txt b/spec/fixtures/files/email-folding-example-10.txt index 0fabb7f9c..a0773e6ff 100644 --- a/spec/fixtures/files/email-folding-example-10.txt +++ b/spec/fixtures/files/email-folding-example-10.txt @@ -3,13 +3,13 @@ Department of Health, please visit the 'Contact us' page on the Department’s website. ----------------------------------------------------------------------------------------- - - Apologies that you were not able to read our previous response of 4 - October. Please find the text of that email below. - + + Apologies that you were not able to read our previous response of 4 + October. Please find the text of that email below. + Our ref: DE00000642471 -Dear Ms Peters Rock, +Dear Ms Peters Rock, You requested your correspondence to be treated under the Freedom of Information Act. However, as your correspondence asked for general @@ -19,7 +19,7 @@ correspondence under the provisions of the Act. I am sorry I cannot be more helpful. -Yours sincerely, +Yours sincerely, Simon Dove Customer Service Centre Department of Health diff --git a/spec/fixtures/files/email-folding-example-10.txt.expected b/spec/fixtures/files/email-folding-example-10.txt.expected index e4f704c0e..5b609dc12 100644 --- a/spec/fixtures/files/email-folding-example-10.txt.expected +++ b/spec/fixtures/files/email-folding-example-10.txt.expected @@ -3,13 +3,13 @@ Department of Health, please visit the 'Contact us' page on the Department’s website. ----------------------------------------------------------------------------------------- - - Apologies that you were not able to read our previous response of 4 - October. Please find the text of that email below. - + + Apologies that you were not able to read our previous response of 4 + October. Please find the text of that email below. + Our ref: DE00000642471 -Dear Ms Peters Rock, +Dear Ms Peters Rock, You requested your correspondence to be treated under the Freedom of Information Act. However, as your correspondence asked for general @@ -19,7 +19,8 @@ correspondence under the provisions of the Act. I am sorry I cannot be more helpful. -Yours sincerely, +Yours sincerely, Simon Dove Customer Service Centre Department of Health +FOLDED_QUOTED_SECTION diff --git a/spec/fixtures/files/email-folding-example-11.txt b/spec/fixtures/files/email-folding-example-11.txt new file mode 100644 index 000000000..635d7aa4f --- /dev/null +++ b/spec/fixtures/files/email-folding-example-11.txt @@ -0,0 +1,45 @@ + Hello Example, + + This is a reply to your test request Nov 28. + + Regards. + + On Thu, Nov 28, 2013 at 9:08 AM, Example User + <[1]request-x-xxx@xxx.com> wrote: + + Dear Test Authority, + + This is the request body. + + Yours faithfully, + + Example User + + ------------------------------------------------------------------- + + Please use this email address for all replies to this request: + [2]request-x-xxx@xxx.com + + Is [3]testauthority@example.com the wrong address for Freedom of + Information requests to AYG Test Authority? If so, please contact us + using this form: + [4]http://example.com/help/contact + + Disclaimer: This message and any reply that you make will be published + on the internet. Our privacy and copyright policies: + [5]http://example.com/help/officers + + If you find this service useful as an FOI officer, please ask your web + manager to link to us from your organisation's FOI page. + + ------------------------------------------------------------------- + +References + + Visible links + 1. mailto:request-x-xxx@xxx.com + 2. mailto:request-x-xxx@xxx.com + 3. mailto:testauthority@example.com + 4. http://example.com/help/contact + 5. http://example.com/help/officers + diff --git a/spec/fixtures/files/email-folding-example-11.txt.expected b/spec/fixtures/files/email-folding-example-11.txt.expected new file mode 100644 index 000000000..e336062c7 --- /dev/null +++ b/spec/fixtures/files/email-folding-example-11.txt.expected @@ -0,0 +1,8 @@ + Hello Example, + + This is a reply to your test request Nov 28. + + Regards. + + +FOLDED_QUOTED_SECTION diff --git a/spec/fixtures/files/email-folding-example-2.txt.expected b/spec/fixtures/files/email-folding-example-2.txt.expected index e52fbe443..df578390d 100644 --- a/spec/fixtures/files/email-folding-example-2.txt.expected +++ b/spec/fixtures/files/email-folding-example-2.txt.expected @@ -2,3 +2,4 @@ Preface to the message which we are not interested in ----------------------------------------------------------------------------------------- Important message about cheese +FOLDED_QUOTED_SECTION diff --git a/spec/fixtures/files/email-folding-example-3.txt.expected b/spec/fixtures/files/email-folding-example-3.txt.expected index e2cca4933..accb40150 100644 --- a/spec/fixtures/files/email-folding-example-3.txt.expected +++ b/spec/fixtures/files/email-folding-example-3.txt.expected @@ -3,3 +3,10 @@ Reference : T3241/8 Thank you for your e-mail enquiry of 12th February. A reply is attached. +FOLDED_QUOTED_SECTION + +FOLDED_QUOTED_SECTION + + +FOLDED_QUOTED_SECTION + diff --git a/spec/fixtures/files/email-folding-example-5.txt.expected b/spec/fixtures/files/email-folding-example-5.txt.expected index fbb0f0f50..46d7f731a 100644 --- a/spec/fixtures/files/email-folding-example-5.txt.expected +++ b/spec/fixtures/files/email-folding-example-5.txt.expected @@ -1,11 +1,11 @@ Hi Simon -My apologies for timescale of response. The data forwarded is a public -register, and is updated on a frequent and regular basis; your request -unfortunately coincided with annual leave and a monthly update of the -spreadsheet. As the definition of an HMO under the Housing Act 2004 -differs to that under planning legislation, I have forwarded this and -your original request on to Andy England, Development Control Manager to +My apologies for timescale of response. The data forwarded is a public +register, and is updated on a frequent and regular basis; your request +unfortunately coincided with annual leave and a monthly update of the +spreadsheet. As the definition of an HMO under the Housing Act 2004 +differs to that under planning legislation, I have forwarded this and +your original request on to Andy England, Development Control Manager to respond independantly. If I can be of further assistance please contact me diff --git a/spec/fixtures/files/email-folding-example-7.txt.expected b/spec/fixtures/files/email-folding-example-7.txt.expected index 0ef8fd82b..cb6961038 100644 --- a/spec/fixtures/files/email-folding-example-7.txt.expected +++ b/spec/fixtures/files/email-folding-example-7.txt.expected @@ -13,4 +13,5 @@ Telephone +44 (0) 116 2222222 Extn 5221 VM No. 8035 Fax + 44 (0) 116 2485217 -<<0001_00035908_Resp_12RESPONSE LETTER_20080408_112311_01.TIF>>
\ No newline at end of file +<<0001_00035908_Resp_12RESPONSE LETTER_20080408_112311_01.TIF>> +FOLDED_QUOTED_SECTION diff --git a/spec/fixtures/files/email-folding-example-8.txt.expected b/spec/fixtures/files/email-folding-example-8.txt.expected index b5dc10c0d..e8c08f4ca 100644 --- a/spec/fixtures/files/email-folding-example-8.txt.expected +++ b/spec/fixtures/files/email-folding-example-8.txt.expected @@ -3,4 +3,5 @@ I will be out of the office starting 11/04/2008 and will not return until I will respond to your message when I return. If you have any urgent queries please ring 02085419088 for Legal Business Support queries or -contact Eileen Perren for FOI or DP queries
\ No newline at end of file +contact Eileen Perren for FOI or DP queries +FOLDED_QUOTED_SECTION diff --git a/spec/fixtures/files/email-folding-example-9.txt.expected b/spec/fixtures/files/email-folding-example-9.txt.expected index 2d2381a34..d222e9438 100644 --- a/spec/fixtures/files/email-folding-example-9.txt.expected +++ b/spec/fixtures/files/email-folding-example-9.txt.expected @@ -7,3 +7,9 @@ Yours sincerely MICHAEL HEGARTY FOI Officer +FOLDED_QUOTED_SECTION + +FOLDED_QUOTED_SECTION + + +FOLDED_QUOTED_SECTION diff --git a/spec/fixtures/files/fake-authority-type.csv b/spec/fixtures/files/fake-authority-type.csv index 4aa618ad1..a320941c7 100644 --- a/spec/fixtures/files/fake-authority-type.csv +++ b/spec/fixtures/files/fake-authority-type.csv @@ -1,3 +1,6 @@ ,North West Fake Authority,north_west_foi@localhost ,Scottish Fake Authority,scottish_foi@localhost ,Fake Authority of Northern Ireland,ni_foi@localhost +,Gobierno de Aragón,spain_foi@localhost +,Nordic æøå,no_foi@localhost + diff --git a/spec/fixtures/files/incoming-request-empty.email b/spec/fixtures/files/incoming-request-empty.email new file mode 100644 index 000000000..890a14f21 --- /dev/null +++ b/spec/fixtures/files/incoming-request-empty.email @@ -0,0 +1,8 @@ +From: EMAIL_FROM +To: FOI Person <EMAIL_TO> +Bcc: +Subject: Re: Nothing to see here. +Reply-To: +In-Reply-To: <471f1eae5d1cb_7347..fdbe67386163@cat.tmail> + + diff --git a/spec/fixtures/files/incoming-request-two-same-name.email b/spec/fixtures/files/incoming-request-two-same-name.email index f1024d607..ecd322fe4 100644 --- a/spec/fixtures/files/incoming-request-two-same-name.email +++ b/spec/fixtures/files/incoming-request-two-same-name.email @@ -13,13 +13,13 @@ Content-Disposition: inline --Q68bSM7Ycu6FN28Q Content-Type: text/plain; charset=us-ascii -Content-Disposition: attachment; filename="hello.txt" +Content-Disposition: attachment; filename="hello-world.txt" Second hello --Q68bSM7Ycu6FN28Q Content-Type: text/plain; charset=us-ascii -Content-Disposition: attachment; filename="hello.txt" +Content-Disposition: attachment; filename="hello-world.txt" First hello diff --git a/spec/fixtures/files/inline-uuencode.email b/spec/fixtures/files/inline-uuencode.email new file mode 100644 index 000000000..3134ba3ad --- /dev/null +++ b/spec/fixtures/files/inline-uuencode.email @@ -0,0 +1,27 @@ +From foo@bar Mon Jun 01 17:14:44 2009 +Return-path: <foo@bar> +Envelope-to: foi@quux +Delivery-date: Mon, 01 Jun 2009 17:14:44 +0100 +From: <foo@bar> +To: <request-whatever@quux> +Subject: something or other +Date: Mon, 1 Jun 2009 17:14:37 +0100 +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.181 +Message-ID: <baz@xyzzy> + +Thanks for your email - here's a truncated attachment +for you: + +********************************************************************** + +begin 666 ResponseT7363 9.doc +MT,\1X*&Q&N$`````````````````````/@`#`/[_"0`&```````````````" +M````) ``````````$ ``+@````$```#^____`````",```!L````________ +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +#```` +` +end + +The original of this email was scanned for viruses or something +like that. diff --git a/spec/fixtures/files/interesting.pdf b/spec/fixtures/files/interesting.pdf Binary files differnew file mode 100644 index 000000000..17f543455 --- /dev/null +++ b/spec/fixtures/files/interesting.pdf diff --git a/spec/fixtures/files/malformed-to-and-cc.email b/spec/fixtures/files/malformed-to-and-cc.email new file mode 100644 index 000000000..4fbb6e21e --- /dev/null +++ b/spec/fixtures/files/malformed-to-and-cc.email @@ -0,0 +1,11 @@ +From foo@bar Wed Mar 12 14:58:26 2008 +Return-path: <foo@bar> +Subject: example email +To: <bar@example.org +Cc: baz@example.org> +From: quux@example.org +Date: Mon, 7 May 2012 12:47:06 +0100 +Mime-Version: 1.0 +Content-Type: text/plain; charset=utf-8 + +A very basic email, but with malformed To: and Cc: lines diff --git a/spec/fixtures/files/mislabelled-as-iso-8859-1.email b/spec/fixtures/files/mislabelled-as-iso-8859-1.email new file mode 100644 index 000000000..6c8e6109e --- /dev/null +++ b/spec/fixtures/files/mislabelled-as-iso-8859-1.email @@ -0,0 +1,20 @@ +From foo@bar Thu Mar 01 15:02:33 2012 +Return-path: <foo@bar> +Envelope-to: foi@quux +Delivery-date: Thu, 01 Mar 2012 15:02:33 +0000 +Date: Thu, 01 Mar 2012 15:01:58 +0000 +Subject: some FOI request +To: foi@quux +From: foo@bar +MIME-Version: 1.0 +Content-Type: text/plain; charset="iso-8859-1" +Content-Transfer-Encoding: 7bit +Message-Id: <2468@bar.local> + +Dear Whoever, + +THERE'S A DASH NEXT REQUEST FOR INFORMATION + +Best regards, +Other Person + diff --git a/spec/fixtures/files/multipart-no-final-boundary.email b/spec/fixtures/files/multipart-no-final-boundary.email new file mode 100644 index 000000000..9c16dad52 --- /dev/null +++ b/spec/fixtures/files/multipart-no-final-boundary.email @@ -0,0 +1,21 @@ +From foo@bar Thu Sep 13 10:34:44 2012 +Return-path: <foo@bar> +Envelope-to: foi@example.org +Delivery-date: Thu, 13 Sep 2012 10:34:44 +0100 +From: foo@bar +To: foi@example.org +Subject: an acknowledgement email +Date: Thu, 13 Sep 2012 10:08:03 +0100 +Message-ID: <987654@foo.local> +Content-Type: multipart/mixed; boundary="-----7D81B75CCC90D2974F7A1CBD" + +This is a multi-part message in MIME format. +-------7D81B75CCC90D2974F7A1CBD +Content-Type: text/html + +<div> + <p> + This is an acknowledgement of your email, that irritatingly + leaves out the final MIME boundary. + </p> +<div> diff --git a/spec/fixtures/files/nested-attachments-premature-end.email b/spec/fixtures/files/nested-attachments-premature-end.email new file mode 100644 index 000000000..6b13808dc --- /dev/null +++ b/spec/fixtures/files/nested-attachments-premature-end.email @@ -0,0 +1,110 @@ +From someone@example.org Mon May 15 13:10:29 2012 +Return-path: <someone@example.org> +Envelope-to: foi@example.org +Delivery-date: Mon, 15 May 2012 13:10:29 +0100 +Message-Id: <abcde@baz.local> +Date: Mon, 15 May 2012 09:48:48 +0100 +From: "Example Person" <someone@example.org> +To: <request@example.org> +Subject: some FOI request or other +Mime-Version: 1.0 +Content-Type: multipart/mixed; boundary="=__outer__=" + +This is a MIME message. If you are reading this text, you may want to +consider changing to a mail reader or gateway that understands how to +properly handle MIME multipart messages. + +--=__outer__= +Content-Type: multipart/alternative; boundary="=__inner__=" + +--=__inner__= +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: quoted-printable +X-MIME-Autoconverted: from 8bit to quoted-printable by something + +Hello +=20 +Please find some information attached. +=20 + +--=__inner__= +Content-Description: HTML +Content-Type: text/html; charset="utf-8" +Content-Transfer-Encoding: quoted-printable + +<html> + <head> + <title>some title text</title> + </head> + <body> + <p>blah blah blah</p> + </body> +</html> + +--=__inner__=-- + +--=__outer__= +Content-Type: message/rfc822 + +Return-path: <foo@bar> +Date: Mon, 7 May 2012 12:47:06 +0100 +From: someone-else@example.org +To: foi@example.org +Message-Id: <56789@quux.local> +Subject: a freedom of information requests +Mime-Version: 1.0 +Content-Type: text/plain; charset=utf-8 + + Dear Whoever, + + Please could you let me know, um, whatever ... + + Yours faithfully, + + Whoever I Am + +--=__outer__= +Content-Type: text/plain; charset=US-ASCII +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + + Dear Whowever, + =20 + Please could you let me know, um, whatever ... + =20 + Yours faithfully, + =20 + Whoever I Am + =20 + +--=__outer__=-- + +--=__outer__= +Content-Type: application/png; name="maroon-square.png" +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; filename="maroon-square.png" + +iVBORw0KGgoAAAANSUhEUgAAAEEAAABCCAYAAAAIY7vrAAAABmJLR0QA/wD/AP+g +vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QQeDSEx8qultwAAABl0 +RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAMzSURBVHja7VtL2psw +DNS4rPv1Gj1Kt71Az9ZT9F7dN9MFGGThB/YfKDX2Kp8DRBpLowcKvn/5ShERiAgl +srh8aT93tJzWdae8XR0CEICwUx59K54H4QFKp0Eg5alrAwEYIDx5DRAGCAOEAcIA +QaUFfDoIHJawpEbOPd0dRPjJDWIUiEwt933+8es2Ovz++a3dCkREXmwD4ZbsVln6 +cLkef14duAMqAGCkY0A+jBNgXGFZU/eKa3fhZjlQqLhHKF9oFbpulE2Z/oFrXTd+ +nlOWkn1dMHXrAiWguq0iG9uk/REjBggPtgQOED781my4wwBhgDBAmPmUAwR0X0UO +dxggnA8CO5xocU8HoAoEDwA6nOyCH+ZMKQ4zy+QbNBoUirquMPBJcgPyJkOi+c7S +ohhn6ZctzDIrcFalIspYILG1et9WABUtt6WztLq+/0Amp9sCnsCBUhfvK4FLiRCA +QwC7JABGTngrIIPnIjf6R5We0uxz3j+FbCvdy2nlY/IgcfrMRQuFHIC9Sap3AW8n +2gZ+cZYCVn4LzBxxnykNgJpWN8lt7yw+QCMxan2s8lQXcNlDlpAW7YmIXMszTgoH +rU91+8OFYXN9ikz/LyLgExSCDlaO+cdGsIEQkyUAIgFMKRTEn3vDjFFHwWSIzEQC +cmN4IHVNGG2PQXhhsuRl3jihwQyB6H1274gV1BhKLKNt4ZEpkygeeoC+xytdK1cr +oX0EACphnTZXbbLMmL/YBGo9lSU1OmBONMnTlQUqTa4y1VgAddg0hdTR04lyT0Xq +8RYAyHVyBX6ET/9wTBD6TWVCMH5Qo3yhXju3bNY/BBMdsoLYBMmnzQdOP56O36s5 +40r1D7UWYV5dNT2nbxVBAHb43Y36CdbXfTii6isU/U7ZXLQ4w/V/wotFoilVF2kl +w7YCDrIPkj4/G9fao7q0rYSSJdgeSqmQrCU+r/j8rOv/gpuKPm5Lffen5eN+ljeo +rcfW0Om2Enm9KwDZAgrG98txX9cMe6X2E5SGU29VTE17lFAUkMybsXclndu31BGX +hcgWv8oxonYtkf/jhc10WPGgm2IZncKlu+sg8vLm7hDSwk3f2/wFEzN3v6aAXQ0A +AAAASUVORK5CYII= + +--=__outer__=-- + diff --git a/spec/fixtures/files/no-part-charset-random-data.email b/spec/fixtures/files/no-part-charset-random-data.email new file mode 100644 index 000000000..d51fd3f38 --- /dev/null +++ b/spec/fixtures/files/no-part-charset-random-data.email @@ -0,0 +1,30 @@ +From xxxx@yahoo.cn Mon Oct 08 14:01:34 2012 +Return-path: <xxxx@yahoo.cn> +Envelope-to: foi@atlas.ukcod.org.uk +Delivery-date: Mon, 08 Oct 2012 14:01:34 +0100 +Received: (qmail 63864 invoked from network); 8 Oct 2012 13:01:12 -0000 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.cn; s=s1024; t=1349701272; bh=T/mtlIYvhB/L5RO+CvTazeAdGf1n1zsGXBoA8EKGT9M=; h=Message-ID:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Received:X-mailer:From:Subject:To:Content-Transfer-Encoding:Content-Type:Date; b=LYI/PXvA7DA746bmyprChUg7N8YDvN9XE/bhfTt5MW7siOmxHHzn1w+s5X33PvLI0x0UfJLo+MCkTnGPKnG5BYY38US8PkocJYyphrvF/eaUl3ALf8UvxHBOJX1iIi89Xp2NnfbS8lz9kZAWifb9GOnOA5/kLDcL5/WJXliit2k= +Message-ID: <xxxx@xxxx.yahoo.com> +X-Yahoo-Newman-Property: ymail-5 +X-YMail-OSG: nPs5jgsVM1myUoKjeEPTxxalz4BM6BZMEUYu.E8NPMPQyo_ + Yej8T2WCTurn767NOwhuDIqNxC2QGZINqfjmKcdyW7a1P_Zxqr9GsjgxODci + ihwr7qYAGDDbcsrB.PX4epnJZHl3yAwoGW.1ReEZnXQANFcNep7.zNEbZ_2k + RU1IhI9aHYvxPxt5RWugwOoFRh9P8Ym35A88IMazNtVaBiBEXF6Vk8Aqr9XP + 3Vh9xOT9Pn6X8qOUjNXkdb3xB4S5AAIRSE9mqhL1KzHBwdVQs25IoM_2FV2b + gPsQGgL4_mwBH0WcEMhdj7Kn6Nfb44L.50E_V3DH.8P7KzDK8zNVXSbAqohX + Qi6MzUK2frr8IyZyYzHb.ekff7kAcJgUoHvhnyPar8tRYxhQT3_xsUTzsx8N + oWckVPh_i3OT7U4ObgekqgtteMoYqPH2eF1SZXamGBAs- +X-Yahoo-SMTP: YUQHwRWswBDjbw_M.D6EP4KpT9khlJErDRBQi4ySZQ-- +X-mailer: MIME::Lite 3.027 (F2.74; T1.31; A2.07; B3.13; Q3.13) +From: =?GB2312?B?zsJKaWFu?= Bing <xxxx@yahoo.cn> +Subject: =?GB2312?B?yM7A1svJ?= +To: FOI Person <EMAIL_TO> +Content-Transfer-Encoding: base64 +Content-Type: text/plain +Date: Tue, 9 Oct 2012 20:53:06 +0800 + +HPBSqsndNBX+ER4hyBoPhhnclcWKVFgbevdD5cJvfI/ARbxRYqA28hZ49Pf6A/ks +NdVh4N5VPgRs/7SHYPfw5625pZJYTLj6nVdYk76sxnjiiAmwCJWGjPoWvO7nHUBv +fuLXtNVq5HmD0bWWjAbSk2n74PW7v5izbNO2fjHyiyX2CIof0rriXDmOldJqoebO +ejybrjG+Tahpu3FF1Mw98HfswzkdB46u/izLCzdUQVM= + diff --git a/spec/fixtures/files/part-without-charset-in-content-type.email b/spec/fixtures/files/part-without-charset-in-content-type.email new file mode 100644 index 000000000..439d52cc3 --- /dev/null +++ b/spec/fixtures/files/part-without-charset-in-content-type.email @@ -0,0 +1,38 @@ +From example@example.com Wed Sep 15 17:55:40 2010 +Return-path: <example@example.com> +Envelope-to: example@example.com +Delivery-date: Wed, 15 Sep 2010 17:55:40 +0100 +From: <example@example.com> +To: <request-xxxxx@whatdotheyknow.com> +Date: Wed, 15 Sep 2010 17:56:03 +0100 +Subject: FOI Internal Review response +Thread-Topic: FOI Internal Review response +Thread-Index: xxxxx +Message-ID: <xxxxxx> +Accept-Language: en-US, en-GB +Content-Language: en-US +X-MS-Has-Attach: yes +X-MS-TNEF-Correlator: +acceptlanguage: en-US, en-GB +Content-Type: multipart/mixed; + boundary="_002_E6527350F565F54A88C36C23F6C2B86702618AD0DF95SDCCPMSXMB5_" +MIME-Version: 1.0 + +--_002_E6527350F565F54A88C36C23F6C2B86702618AD0DF95SDCCPMSXMB5_ +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: base64 + +someencodedtext= + +--_002_E6527350F565F54A88C36C23F6C2B86702618AD0DF95SDCCPMSXMB5_ +Content-Type: document/pdf; name="document.pdf" +Content-Description: document.pdf +Content-Disposition: attachment; filename="document.pdf"; + size=62103; creation-date="Wed, 15 Sep 2010 17:54:27 GMT"; + modification-date="Wed, 15 Sep 2010 17:54:27 GMT" +Content-Transfer-Encoding: base64 + +somemoreencodedtext= + +--_002_E6527350F565F54A88C36C23F6C2B86702618AD0DF95SDCCPMSXMB5_-- + diff --git a/spec/fixtures/files/subject-bad-utf-8-trailing-base64.email b/spec/fixtures/files/subject-bad-utf-8-trailing-base64.email new file mode 100644 index 000000000..dad621877 --- /dev/null +++ b/spec/fixtures/files/subject-bad-utf-8-trailing-base64.email @@ -0,0 +1,5 @@ +From: foo@bar +To: baz@quux +Subject: =?UTF-8?B?aGVsbG/w?= + +Hello, this is the text of the email. diff --git a/spec/fixtures/files/subject-bad-utf-8-trailing-quoted-printable.email b/spec/fixtures/files/subject-bad-utf-8-trailing-quoted-printable.email new file mode 100644 index 000000000..b80deb4e8 --- /dev/null +++ b/spec/fixtures/files/subject-bad-utf-8-trailing-quoted-printable.email @@ -0,0 +1,5 @@ +From: foo@bar +To: baz@quux +Subject: =?UTF-8?Q?hello=F0=?= + +Hello, this is the text of the email. diff --git a/spec/fixtures/files/tnef-attachment-empty.email b/spec/fixtures/files/tnef-attachment-empty.email new file mode 100644 index 000000000..7967aa95b --- /dev/null +++ b/spec/fixtures/files/tnef-attachment-empty.email @@ -0,0 +1,196 @@ +From hello@blah.local Fri Feb 21 16:23:14 2013 +Return-path: <bar@example.org> +Envelope-to: foo@example.org +Delivery-date: Fri, 21 Feb 2013 16:23:14 +0000 +Content-Type: multipart/mixed; + boundary="_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_" +From: <bar@example.org> +To: <foo@example.org> +Sender: <hello@blah.local> +Date: Fri, 21 Feb 2013 16:23:04 +0000 +Subject: here's a useless email +Message-ID: <12345@blah.local> +Accept-Language: en-US, en-GB +Content-Language: en-US +X-MS-Has-Attach: +X-MS-TNEF-Correlator: <12345@blah.local> +acceptlanguage: en-US, en-GB +MIME-Version: 1.0 + +--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_ +Content-Type: text/plain; charset="us-ascii" +Content-Transfer-Encoding: quoted-printable + +This attachment just has a body from one of the tests +in the tnef package in Debian. + +--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_ +Content-Disposition: attachment; filename="winmail.dat" +Content-Transfer-Encoding: base64 +Content-Type: application/ms-tnef; name="winmail.dat" + +eJ8+IiURAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAENgAQAAgAA +AAIAAgABBYADAA4AAADVBwQAGQAKAA8AIwABADYBASCAAwAOAAAA1QcEABkACgAP +ACQAAQA3AQEJgAEAIQAAADBEREEwRkNCQ0MwN0MxNDE5MkVFODZGQzQyRDE1Qjk1 +AGYHAQSQBgBkAgAAAQAAAA8AAAAfAAEwAQAAABAAAAAzAGsAdQBzAGUAcgAyAAAA +HwACMAEAAAAGAAAARQBYAAAAAAAfAAMwAQAAAI4AAAAvAE8APQBCAFIALQBFAFgA +QwBIAC0AVABFAFMAVAAvAE8AVQA9AEYASQBSAFMAVAAgAEEARABNAEkATgBJAFMA +VABSAEEAVABJAFYARQAgAEcAUgBPAFUAUAAvAEMATgA9AFIARQBDAEkAUABJAEUA +TgBUAFMALwBDAE4APQAzAGsAdQBzAGUAcgAyAAAAAAADAAAwAAAAAAMA/18AAAAA +AwAVDAEAAAACAQswAQAAAEoAAABFWDovTz1CUi1FWENILVRFU1QvT1U9RklSU1Qg +QURNSU5JU1RSQVRJVkUgR1JPVVAvQ049UkVDSVBJRU5UUy9DTj0zS1VTRVIyAAAA +HwAgOgEAAAAQAAAAMwBrAHUAcwBlAHIAMgAAAAMA/V8BAAAACwBAOgAA+T8CAfdf +AQAAAGMAAAAAAAAA3KdAyMBCEBq0uQgAKy/hggEAAAAAAAAAL289QlItRVhDSC1U +RVNUL291PUZpcnN0IEFkbWluaXN0cmF0aXZlIEdyb3VwL2NuPVJlY2lwaWVudHMv +Y249M2t1c2VyMgAAAwAAOQAAAAAfAP45AQAAAEoAAAAzAGsAdQBzAGUAcgAyAEAA +YgByAGUAeABjAGgAYQBuAGcAZQAuAGQAbwBsAHAAaABpAG4AcwBlAGEAcgBjAGgA +LgBjAG8AbQAAAAAAAwBxOgAAAAAfAPZfAQAAABAAAAAzAGsAdQBzAGUAcgAyAAAA +m2sBA5AGAEwbAAAzAAAACwACAAEAAAAfABoAAQAAABIAAABJAFAATQAuAE4AbwB0 +AGUAAAAAAAMAJgAAAAAAAwA2AAAAAAAfADcAAQAAAB4AAABCAGkAbABsACAAbwBm +ACAAUgBpAGcAaAB0AHMAAAAAAEAAOQBgQvtkuknFAR8APQABAAAAAgAAAAAAAAAC +AUcAAQAAADgAAABjPXVzO2E9IDtwPUJSLUVYQ0gtVEVTVDtsPUJSLUVYQ0gtREVW +MS0wNTA0MjUxNzE1MzZaLTE0AB8AcAABAAAAHgAAAEIAaQBsAGwAIABvAGYAIABS +AGkAZwBoAHQAcwAAAAAAAgFxAAEAAAAWAAAAAcVJumT7yarjal9+TnmqsNvwaipi +/QAAHwAaDAEAAAAQAAAAMwBrAHIAZQBsAGEAeQAAAB8AHQ4BAAAAHgAAAEIAaQBs +AGwAIABvAGYAIABSAGkAZwBoAHQAcwAAAAAAAgETEAEAAADuFAAAPCFET0NUWVBF +IEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv +L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5 +cGUgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXVzLWFzY2lpIj4NCjxNRVRB +IGNvbnRlbnQ9Ik1TSFRNTCA2LjAwLjM3OTAuMTgzMCIgbmFtZT1HRU5FUkFUT1I+ +PC9IRUFEPg0KPEJPRFk+DQo8RElWPg0KPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNp +emU9Mj5USEUgQklMTCBPRiBSSUdIVFM8QlI+QW1lbmRtZW50cyAxLTEwIG9mIHRo +ZSANCkNvbnN0aXR1dGlvbjwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+ +DQo8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPlRoZSBDb252ZW50aW9ucyBv +ZiBhIG51bWJlciBvZiB0aGUgU3RhdGVzIGhhdmluZywgDQphdCB0aGUgdGltZSBv +ZiBhZG9wdGluZyB0aGUgQ29uc3RpdHV0aW9uLCBleHByZXNzZWQgYSBkZXNpcmUs +IGluIG9yZGVyIHRvIA0KcHJldmVudCBtaXNjb25zdHJ1Y3Rpb24gb3IgYWJ1c2Ug +b2YgaXRzIHBvd2VycywgdGhhdCBmdXJ0aGVyIGRlY2xhcmF0b3J5IGFuZCANCnJl +c3RyaWN0aXZlIGNsYXVzZXMgc2hvdWxkIGJlIGFkZGVkLCBhbmQgYXMgZXh0ZW5k +aW5nIHRoZSBncm91bmQgb2YgcHVibGljIA0KY29uZmlkZW5jZSBpbiB0aGUgR292 +ZXJubWVudCB3aWxsIGJlc3QgaW5zdXJlIHRoZSBiZW5lZmljZW50IGVuZHMgb2Yg +aXRzIA0KaW5zdGl0dXRpb247IDxCUj5SZXNvbHZlZCwgYnkgdGhlIFNlbmF0ZSBh +bmQgSG91c2Ugb2YgUmVwcmVzZW50YXRpdmVzIG9mIHRoZSANClVuaXRlZCBTdGF0 +ZXMgb2YgQW1lcmljYSwgaW4gQ29uZ3Jlc3MgYXNzZW1ibGVkLCB0d28tdGhpcmRz +IG9mIGJvdGggSG91c2VzIA0KY29uY3VycmluZywgdGhhdCB0aGUgZm9sbG93aW5n +IGFydGljbGVzIGJlIHByb3Bvc2VkIHRvIHRoZSBMZWdpc2xhdHVyZXMgb2YgdGhl +IA0Kc2V2ZXJhbCBTdGF0ZXMsIGFzIGFtZW5kbWVudHMgdG8gdGhlIENvbnN0aXR1 +dGlvbiBvZiB0aGUgVW5pdGVkIFN0YXRlczsgYWxsIG9yIA0KYW55IG9mIHdoaWNo +IGFydGljbGVzLCB3aGVuIHJhdGlmaWVkIGJ5IHRocmVlLWZvdXJ0aHMgb2YgdGhl +IHNhaWQgTGVnaXNsYXR1cmVzLCANCnRvIGJlIHZhbGlkIHRvIGFsbCBpbnRlbnRz +IGFuZCBwdXJwb3NlcyBhcyBwYXJ0IG9mIHRoZSBzYWlkIENvbnN0aXR1dGlvbiwg +DQpuYW1lbHk6IDwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8RElW +PjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPkFtZW5kbWVudCBJPC9GT05UPjwvRElW +Pg0KPERJVj4mbmJzcDs8L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXpl +PTI+Q29uZ3Jlc3Mgc2hhbGwgbWFrZSBubyBsYXcgcmVzcGVjdGluZyBhbiANCmVz +dGFibGlzaG1lbnQgb2YgcmVsaWdpb24sIG9yIHByb2hpYml0aW5nIHRoZSBmcmVl +IGV4ZXJjaXNlIHRoZXJlb2Y7IG9yIA0KYWJyaWRnaW5nIHRoZSBmcmVlZG9tIG9m +IHNwZWVjaCwgb3Igb2YgdGhlIHByZXNzOyBvciB0aGUgcmlnaHQgb2YgdGhlIHBl +b3BsZSANCnBlYWNlYWJseSB0byBhc3NlbWJsZSwgYW5kIHRvIHBldGl0aW9uIHRo +ZSBnb3Zlcm5tZW50IGZvciBhIHJlZHJlc3Mgb2YgDQpncmlldmFuY2VzLiA8L0ZP +TlQ+PC9ESVY+DQo8RElWPiZuYnNwOzwvRElWPg0KPERJVj48Rk9OVCBmYWNlPUFy +aWFsIHNpemU9Mj5BbWVuZG1lbnQgSUk8L0ZPTlQ+PC9ESVY+DQo8RElWPiZuYnNw +OzwvRElWPg0KPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj5BIHdlbGwgcmVn +dWxhdGVkIG1pbGl0aWEsIGJlaW5nIG5lY2Vzc2FyeSB0byB0aGUgDQpzZWN1cml0 +eSBvZiBhIGZyZWUgc3RhdGUsIHRoZSByaWdodCBvZiB0aGUgcGVvcGxlIHRvIGtl +ZXAgYW5kIGJlYXIgYXJtcywgc2hhbGwgDQpub3QgYmUgaW5mcmluZ2VkLiA8L0ZP +TlQ+PC9ESVY+DQo8RElWPiZuYnNwOzwvRElWPg0KPERJVj48Rk9OVCBmYWNlPUFy +aWFsIHNpemU9Mj5BbWVuZG1lbnQgSUlJPC9GT05UPjwvRElWPg0KPERJVj4mbmJz +cDs8L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Tm8gc29sZGll +ciBzaGFsbCwgaW4gdGltZSBvZiBwZWFjZSBiZSBxdWFydGVyZWQgaW4gDQphbnkg +aG91c2UsIHdpdGhvdXQgdGhlIGNvbnNlbnQgb2YgdGhlIG93bmVyLCBub3IgaW4g +dGltZSBvZiB3YXIsIGJ1dCBpbiBhIG1hbm5lciANCnRvIGJlIHByZXNjcmliZWQg +YnkgbGF3LiA8L0ZPTlQ+PC9ESVY+DQo8RElWPiZuYnNwOzwvRElWPg0KPERJVj48 +Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj5BbWVuZG1lbnQgSVY8L0ZPTlQ+PC9ESVY+ +DQo8RElWPiZuYnNwOzwvRElWPg0KPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9 +Mj5UaGUgcmlnaHQgb2YgdGhlIHBlb3BsZSB0byBiZSBzZWN1cmUgaW4gdGhlaXIg +DQpwZXJzb25zLCBob3VzZXMsIHBhcGVycywgYW5kIGVmZmVjdHMsIGFnYWluc3Qg +dW5yZWFzb25hYmxlIHNlYXJjaGVzIGFuZCANCnNlaXp1cmVzLCBzaGFsbCBub3Qg +YmUgdmlvbGF0ZWQsIGFuZCBubyB3YXJyYW50cyBzaGFsbCBpc3N1ZSwgYnV0IHVw +b24gcHJvYmFibGUgDQpjYXVzZSwgc3VwcG9ydGVkIGJ5IG9hdGggb3IgYWZmaXJt +YXRpb24sIGFuZCBwYXJ0aWN1bGFybHkgZGVzY3JpYmluZyB0aGUgcGxhY2UgDQp0 +byBiZSBzZWFyY2hlZCwgYW5kIHRoZSBwZXJzb25zIG9yIHRoaW5ncyB0byBiZSBz +ZWl6ZWQuIDwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8RElWPjxG +T05UIGZhY2U9QXJpYWwgc2l6ZT0yPkFtZW5kbWVudCBWPC9GT05UPjwvRElWPg0K +PERJVj4mbmJzcDs8L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+ +Tm8gcGVyc29uIHNoYWxsIGJlIGhlbGQgdG8gYW5zd2VyIGZvciBhIGNhcGl0YWws +IG9yIA0Kb3RoZXJ3aXNlIGluZmFtb3VzIGNyaW1lLCB1bmxlc3Mgb24gYSBwcmVz +ZW50bWVudCBvciBpbmRpY3RtZW50IG9mIGEgZ3JhbmQganVyeSwgDQpleGNlcHQg +aW4gY2FzZXMgYXJpc2luZyBpbiB0aGUgbGFuZCBvciBuYXZhbCBmb3JjZXMsIG9y +IGluIHRoZSBtaWxpdGlhLCB3aGVuIGluIA0KYWN0dWFsIHNlcnZpY2UgaW4gdGlt +ZSBvZiB3YXIgb3IgcHVibGljIGRhbmdlcjsgbm9yIHNoYWxsIGFueSBwZXJzb24g +YmUgc3ViamVjdCANCmZvciB0aGUgc2FtZSBvZmZlbnNlIHRvIGJlIHR3aWNlIHB1 +dCBpbiBqZW9wYXJkeSBvZiBsaWZlIG9yIGxpbWI7IG5vciBzaGFsbCBiZSANCmNv +bXBlbGxlZCBpbiBhbnkgY3JpbWluYWwgY2FzZSB0byBiZSBhIHdpdG5lc3MgYWdh +aW5zdCBoaW1zZWxmLCBub3IgYmUgZGVwcml2ZWQgDQpvZiBsaWZlLCBsaWJlcnR5 +LCBvciBwcm9wZXJ0eSwgd2l0aG91dCBkdWUgcHJvY2VzcyBvZiBsYXc7IG5vciBz +aGFsbCBwcml2YXRlIA0KcHJvcGVydHkgYmUgdGFrZW4gZm9yIHB1YmxpYyB1c2Us +IHdpdGhvdXQganVzdCBjb21wZW5zYXRpb24uIDwvRk9OVD48L0RJVj4NCjxESVY+ +Jm5ic3A7PC9ESVY+DQo8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPkFtZW5k +bWVudCBWSTwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8RElWPjxG +T05UIGZhY2U9QXJpYWwgc2l6ZT0yPkluIGFsbCBjcmltaW5hbCBwcm9zZWN1dGlv +bnMsIHRoZSBhY2N1c2VkIHNoYWxsIA0KZW5qb3kgdGhlIHJpZ2h0IHRvIGEgc3Bl +ZWR5IGFuZCBwdWJsaWMgdHJpYWwsIGJ5IGFuIGltcGFydGlhbCBqdXJ5IG9mIHRo +ZSBzdGF0ZSANCmFuZCBkaXN0cmljdCB3aGVyZWluIHRoZSBjcmltZSBzaGFsbCBo +YXZlIGJlZW4gY29tbWl0dGVkLCB3aGljaCBkaXN0cmljdCBzaGFsbCANCmhhdmUg +YmVlbiBwcmV2aW91c2x5IGFzY2VydGFpbmVkIGJ5IGxhdywgYW5kIHRvIGJlIGlu +Zm9ybWVkIG9mIHRoZSBuYXR1cmUgYW5kIA0KY2F1c2Ugb2YgdGhlIGFjY3VzYXRp +b247IHRvIGJlIGNvbmZyb250ZWQgd2l0aCB0aGUgd2l0bmVzc2VzIGFnYWluc3Qg +aGltOyB0byANCmhhdmUgY29tcHVsc29yeSBwcm9jZXNzIGZvciBvYnRhaW5pbmcg +d2l0bmVzc2VzIGluIGhpcyBmYXZvciwgYW5kIHRvIGhhdmUgdGhlIA0KYXNzaXN0 +YW5jZSBvZiBjb3Vuc2VsIGZvciBoaXMgZGVmZW5zZS4gPC9GT05UPjwvRElWPg0K +PERJVj4mbmJzcDs8L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+ +QW1lbmRtZW50IFZJSTwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8 +RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPkluIHN1aXRzIGF0IGNvbW1vbiBs +YXcsIHdoZXJlIHRoZSB2YWx1ZSBpbiANCmNvbnRyb3ZlcnN5IHNoYWxsIGV4Y2Vl +ZCB0d2VudHkgZG9sbGFycywgdGhlIHJpZ2h0IG9mIHRyaWFsIGJ5IGp1cnkgc2hh +bGwgYmUgDQpwcmVzZXJ2ZWQsIGFuZCBubyBmYWN0IHRyaWVkIGJ5IGEganVyeSwg +c2hhbGwgYmUgb3RoZXJ3aXNlIHJlZXhhbWluZWQgaW4gYW55IA0KY291cnQgb2Yg +dGhlIFVuaXRlZCBTdGF0ZXMsIHRoYW4gYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBv +ZiB0aGUgY29tbW9uIGxhdy4gDQo8L0ZPTlQ+PC9ESVY+DQo8RElWPiZuYnNwOzwv +RElWPg0KPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj5BbWVuZG1lbnQgVklJ +STwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8RElWPjxGT05UIGZh +Y2U9QXJpYWwgc2l6ZT0yPkV4Y2Vzc2l2ZSBiYWlsIHNoYWxsIG5vdCBiZSByZXF1 +aXJlZCwgbm9yIGV4Y2Vzc2l2ZSANCmZpbmVzIGltcG9zZWQsIG5vciBjcnVlbCBh +bmQgdW51c3VhbCBwdW5pc2htZW50cyBpbmZsaWN0ZWQuIDwvRk9OVD48L0RJVj4N +CjxESVY+Jm5ic3A7PC9ESVY+DQo8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0y +PkFtZW5kbWVudCBJWDwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8 +RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPlRoZSBlbnVtZXJhdGlvbiBpbiB0 +aGUgQ29uc3RpdHV0aW9uLCBvZiBjZXJ0YWluIA0KcmlnaHRzLCBzaGFsbCBub3Qg +YmUgY29uc3RydWVkIHRvIGRlbnkgb3IgZGlzcGFyYWdlIG90aGVycyByZXRhaW5l +ZCBieSB0aGUgDQpwZW9wbGUuIDwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9E +SVY+DQo8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPkFtZW5kbWVudCBYPC9G +T05UPjwvRElWPg0KPERJVj4mbmJzcDs8L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1B +cmlhbCBzaXplPTI+VGhlIHBvd2VycyBub3QgZGVsZWdhdGVkIHRvIHRoZSBVbml0 +ZWQgU3RhdGVzIGJ5IA0KdGhlIENvbnN0aXR1dGlvbiwgbm9yIHByb2hpYml0ZWQg +YnkgaXQgdG8gdGhlIHN0YXRlcywgYXJlIHJlc2VydmVkIHRvIHRoZSBzdGF0ZXMg +DQpyZXNwZWN0aXZlbHksIG9yIHRvIHRoZSBwZW9wbGUuIDwvRk9OVD48L0RJVj48 +L0RJVj48L0JPRFk+PC9IVE1MPg0KAAAfADUQAQAAAKIAAAA8ADQANQAyADAARgA2 +ADEANQAxAEQAQQBGADIAQQA0ADQAQgBBADgANwA4AEIARgAyAEYAMwA4ADAAMwA0 +ADgARQAyADYARQA1AEAAYgByAC0AZQB4AGMAaAAtAGQAZQB2ADEALgBiAHIAZQB4 +AGMAaABhAG4AZwBlAC4AZABvAGwAcABoAGkAbgBzAGUAYQByAGMAaAAuAGMAbwBt +AD4AAAAAAAMAgBD/////HwDzEAEAAAAmAAAAQgBpAGwAbAAgAG8AZgAgAFIAaQBn +AGgAdABzAC4ARQBNAEwAAAAAAAsA9BAAAAAACwD1EAAAAAALAPYQAAAAAEAABzBR +lpFluknFAUAACDBRlpFluknFAQMA3j+fTgAAAwDxPwkEAAAfAPg/AQAAABAAAAAz +AGsAcgBlAGwAYQB5AAAAAgH5PwEAAABjAAAAAAAAANynQMjAQhAatLkIACsv4YIB +AAAAAAAAAC9PPUJSLUVYQ0gtVEVTVC9PVT1GSVJTVCBBRE1JTklTVFJBVElWRSBH +Uk9VUC9DTj1SRUNJUElFTlRTL0NOPTNLUkVMQVkAAB8A+j8BAAAAEAAAADMAawBy +AGUAbABhAHkAAAACAfs/AQAAAGMAAAAAAAAA3KdAyMBCEBq0uQgAKy/hggEAAAAA +AAAAL089QlItRVhDSC1URVNUL09VPUZJUlNUIEFETUlOSVNUUkFUSVZFIEdST1VQ +L0NOPVJFQ0lQSUVOVFMvQ049M0tSRUxBWQAAAwD9P+QEAAADABlAAAAAAAMAGkAA +AAAAHwAwQAEAAAAQAAAAMwBLAFIARQBMAEEAWQAAAB8AMUABAAAAEAAAADMASwBS +AEUATABBAFkAAAAfADhAAQAAABAAAAAzAEsAUgBFAEwAQQBZAAAAHwA5QAEAAAAQ +AAAAMwBLAFIARQBMAEEAWQAAAAMAdkD/////AwACWQAAFgADAAlZAgAAAAsAhYEI +IAYAAAAAAMAAAAAAAABGAAAAAA6FAAAAAAAAAwCdgQggBgAAAAAAwAAAAAAAAEYA +AAAAUoUAAJjDAQAfAJ6BCCAGAAAAAADAAAAAAAAARgAAAABUhQAAAQAAAAoAAAAx +ADEALgAwAAAAAAADAOmBCCAGAAAAAADAAAAAAAAARgAAAAABhQAAAAAAAAsA7oEI +IAYAAAAAAMAAAAAAAABGAAAAAAOFAAAAAAAAAwD4gQggBgAAAAAAwAAAAAAAAEYA +AAAAEIUAAAAAAAADAP+BCCAGAAAAAADAAAAAAAAARgAAAAAYhQAAAAAAAAsAIIII +IAYAAAAAAMAAAAAAAABGAAAAAAaFAAAAAAAACwAkggggBgAAAAAAwAAAAAAAAEYA +AAAAgoUAAAAAAAAfACaCCCAGAAAAAADAAAAAAAAARgAAAACDhQAAAQAAACYAAAA0 +ADAANQAxADMAMQA1ADEANwAtADIANQAwADQAMgAwADAANQAAAAAAAwBxggggBgAA +AAAAwAAAAAAAAEYAAAAAk4UAAAAAAAALACkAAAAAAAsAIwAAAAAAAgF/AAEAAABR +AAAAPDQ1MjBGNjE1MURBRjJBNDRCQTg3OEJGMkYzODAzNDhFMjZFNUBici1leGNo +LWRldjEuYnJleGNoYW5nZS5kb2xwaGluc2VhcmNoLmNvbT4AAAAAC/o= + +--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_-- + diff --git a/spec/fixtures/files/tnef-attachment-truncated.email b/spec/fixtures/files/tnef-attachment-truncated.email new file mode 100644 index 000000000..365a5a442 --- /dev/null +++ b/spec/fixtures/files/tnef-attachment-truncated.email @@ -0,0 +1,34 @@ +From hello@blah.local Fri Feb 21 16:23:14 2013 +Return-path: <bar@example.org> +Envelope-to: foo@example.org +Delivery-date: Fri, 21 Feb 2013 16:23:14 +0000 +Content-Type: multipart/mixed; + boundary="_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_" +From: <bar@example.org> +To: <foo@example.org> +Sender: <hello@blah.local> +Date: Fri, 21 Feb 2013 16:23:04 +0000 +Subject: here's a useless email +Message-ID: <12345@blah.local> +Accept-Language: en-US, en-GB +Content-Language: en-US +X-MS-Has-Attach: +X-MS-TNEF-Correlator: <12345@blah.local> +acceptlanguage: en-US, en-GB +MIME-Version: 1.0 + +--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_ +Content-Type: text/plain; charset="us-ascii" +Content-Transfer-Encoding: quoted-printable + +Some introductory text here, before the malformed TNEF attachment. + +--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_ +Content-Disposition: attachment; filename="winmail.dat" +Content-Transfer-Encoding: base64 +Content-Type: application/ms-tnef; name="winmail.dat" + +eJ8+IkV9AQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEJgAEAIQAAAEMyRUUzRUYx + +--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_-- + diff --git a/spec/fixtures/files/unrecognized-encoding-mail.email b/spec/fixtures/files/unrecognized-encoding-mail.email new file mode 100644 index 000000000..266a90fbc --- /dev/null +++ b/spec/fixtures/files/unrecognized-encoding-mail.email @@ -0,0 +1,36 @@ +From xxx@example.com Fri Jun 21 07:50:52 2013 +Return-path: <xxx@example.com> +Envelope-to: xxx@example.com +Delivery-date: Fri, 21 Jun 2013 07:50:52 +0100 +Message-ID: <185C0D48380D7AE612DD38A527D5EAF2@tmvbalem> +From: "cttlqvx" <xxx@example.com> +To: <xxx@example.com> +Subject: =?hz-gb-2312?B?fntPck9ISXpWQn59c3J5dW95d3MoQUQpICAgIA==?= +Date: Fri, 21 Jun 2013 14:48:20 +0800 +MIME-Version: 1.0 +Content-Type: multipart/related; + type="multipart/alternative"; + boundary="----=_NextPart_000_02ED_01A0462A.178683F0" +X-Priority: 1 +X-MSMail-Priority: High +X-Mailer: Microsoft Outlook Express 6.00.2900.5512 +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512 + +This is a multi-part message in MIME format. + +------=_NextPart_000_02ED_01A0462A.178683F0 +Content-Type: multipart/alternative; + boundary="----=_NextPart_001_09EC_01A0462A.178683F0" + +------=_NextPart_001_09EC_01A0462A.178683F0 +Content-Type: text/plain; + charset="hz-gb-2312" +Content-Transfer-Encoding: base64 + + +------=_NextPart_001_09EC_01A0462A.178683F0 +Content-Type: text/html; + charset="hz-gb-2312" +Content-Transfer-Encoding: base64 + +------=_NextPart_001_09EC_01A0462A.178683F0-- diff --git a/spec/fixtures/foi_attachments.yml b/spec/fixtures/foi_attachments.yml deleted file mode 100644 index 8b1378917..000000000 --- a/spec/fixtures/foi_attachments.yml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/spec/fixtures/holidays.yml b/spec/fixtures/holidays.yml index 5a3d018bc..e6b8889c3 100644 --- a/spec/fixtures/holidays.yml +++ b/spec/fixtures/holidays.yml @@ -1,3 +1,12 @@ +# == Schema Information +# +# Table name: holidays +# +# id :integer not null, primary key +# day :date +# description :text +# + date20071130: id: '1' day: '2007-11-30' diff --git a/spec/fixtures/incoming_messages.yml b/spec/fixtures/incoming_messages.yml index fca5c716c..0bf392be1 100644 --- a/spec/fixtures/incoming_messages.yml +++ b/spec/fixtures/incoming_messages.yml @@ -1,3 +1,25 @@ +# == Schema Information +# +# Table name: incoming_messages +# +# id :integer not null, primary key +# info_request_id :integer not null +# created_at :datetime not null +# updated_at :datetime not null +# raw_email_id :integer not null +# cached_attachment_text_clipped :text +# cached_main_body_text_folded :text +# cached_main_body_text_unfolded :text +# subject :text +# mail_from_domain :text +# valid_to_reply_to :boolean +# last_parsed :datetime +# mail_from :text +# sent_at :datetime +# prominence :string(255) default("normal"), not null +# prominence_reason :text +# + useless_incoming_message: id: 1 info_request_id: 101 diff --git a/spec/fixtures/info_request_events.yml b/spec/fixtures/info_request_events.yml index c1a00ad47..b2f40cc37 100644 --- a/spec/fixtures/info_request_events.yml +++ b/spec/fixtures/info_request_events.yml @@ -1,3 +1,20 @@ +# == Schema Information +# +# Table name: info_request_events +# +# id :integer not null, primary key +# info_request_id :integer not null +# event_type :text not null +# params_yaml :text not null +# created_at :datetime not null +# described_state :string(255) +# calculated_state :string(255) +# last_described_at :datetime +# incoming_message_id :integer +# outgoing_message_id :integer +# comment_id :integer +# + useless_outgoing_message_event: id: 900 params_yaml: "--- \n\ @@ -171,3 +188,14 @@ anonymous_external_outgoing_message_event: created_at: 2009-01-03 02:23:45.6789100 described_state: waiting_response calculated_state: waiting_response + +other_request_outgoing_message_event: + id: 916 + params_yaml: "--- \n\ + :outgoing_message_id: 10\n" + outgoing_message_id: 10 + info_request_id: 111 + event_type: sent + created_at: <%= Time.now %> + described_state: waiting_response + calculated_state: waiting_response diff --git a/spec/fixtures/info_requests.yml b/spec/fixtures/info_requests.yml index 9361ec486..d64807a49 100644 --- a/spec/fixtures/info_requests.yml +++ b/spec/fixtures/info_requests.yml @@ -1,3 +1,27 @@ +# == Schema Information +# +# Table name: info_requests +# +# id :integer not null, primary key +# title :text not null +# user_id :integer +# public_body_id :integer not null +# created_at :datetime not null +# updated_at :datetime not null +# described_state :string(255) not null +# awaiting_description :boolean default(FALSE), not null +# prominence :string(255) default("normal"), not null +# url_title :text not null +# law_used :string(255) default("foi"), not null +# allow_new_responses_from :string(255) default("anybody"), not null +# handle_rejected_responses :string(255) default("bounce"), not null +# idhash :string(255) not null +# external_user_name :string(255) +# external_url :string(255) +# attention_requested :boolean default(FALSE) +# comments_allowed :boolean default(TRUE), not null +# + fancy_dog_request: id: 101 title: Why do you have & such a fancy dog? @@ -107,3 +131,15 @@ anonymous_external_request: awaiting_description: false comments_allowed: true idhash: 7654321a +other_request: + id: 111 + title: Another request + url_title: another_request + created_at: 2010-01-01 02:23:45.6789100 + updated_at: 2010-01-01 02:23:45.6789100 + public_body_id: 7 + user_id: 6 + described_state: waiting_response + awaiting_description: false + comments_allowed: true + idhash: b234567 diff --git a/spec/fixtures/locale/en/app.po b/spec/fixtures/locale/en/app.po index 91af9b72b..6d5bca1f9 100644 --- a/spec/fixtures/locale/en/app.po +++ b/spec/fixtures/locale/en/app.po @@ -31,7 +31,7 @@ msgid "" msgstr "" #: app/views/comment/_comment_form.rhtml:16 -msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)" +msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)" msgstr "" #: app/views/request/upload_response.rhtml:40 @@ -71,7 +71,7 @@ msgstr "" #: app/views/public_body/view_email.rhtml:30 msgid "" -" If you know the address to use, then please <a href=\"%s\">send it to us</a>.\n" +" If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\n" " You may be able to find the address on their website, or by phoning them up and asking." msgstr "" @@ -123,20 +123,20 @@ msgid " when you send this message." msgstr "" #: app/views/public_body/show.rhtml:87 -msgid "%d Freedom of Information request to %s" -msgid_plural "%d Freedom of Information requests to %s" +msgid "{{count}} Freedom of Information request to {{public_body_name}}" +msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}" msgstr[0] "" msgstr[1] "" #: app/views/general/frontpage.rhtml:43 -msgid "%d request" -msgid_plural "%d requests" +msgid "{{count}} request" +msgid_plural "{{count}} requests" msgstr[0] "" msgstr[1] "" #: app/views/public_body/_body_listing_single.rhtml:21 -msgid "%d request made." -msgid_plural "%d requests made." +msgid "{{count}} request made." +msgid_plural "{{count}} requests made." msgstr[0] "" msgstr[1] "" @@ -187,43 +187,37 @@ msgstr "" msgid "3. Now check your request" msgstr "" -#: app/views/public_body/show.rhtml:56 -msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>" -msgstr "" - #: app/views/request/_after_actions.rhtml:9 -msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)" +msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)" msgstr "" #: app/views/public_body/list.rhtml:29 -msgid "<a href=\"%s\">Are we missing a public authority?</a>." +msgid "Are we missing a public authority?" msgstr "" #: app/views/request/_sidebar.rhtml:39 -msgid "" -"<a href=\"%s\">Are you the owner of\n" -" any commercial copyright on this page?</a>" +msgid "Are you the owner of any commercial copyright on this page?" msgstr "" #: app/views/general/search.rhtml:168 -msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>." +msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>." msgstr "" #: app/views/public_body/list.rhtml:51 -msgid "<a href=\"%s\">Can't find the one you want?</a>" +msgid "Can't find the one you want?" msgstr "" #: app/views/user/show.rhtml:118 -msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)" +msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)" msgstr "" #: app/views/request/_followup.rhtml:66 app/views/request/_followup.rhtml:73 #: app/views/request/show.rhtml:83 app/views/request/show.rhtml:87 -msgid "<a href=\"%s\">details</a>" +msgid "details" msgstr "" #: app/views/request/_followup.rhtml:101 -msgid "<a href=\"%s\">what's that?</a>" +msgid "what's that?" msgstr "" #: app/controllers/request_game_controller.rb:23 @@ -293,11 +287,11 @@ msgid "<p>We're glad you got some of the information that you wanted. If you fou msgstr "" #: app/controllers/request_controller.rb:318 -msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"%s\">details</a>).</p>" +msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>" msgstr "" #: app/controllers/request_controller.rb:316 -msgid "<p>You do not need to include your email in the request in order to get a reply, as we will ask for it on the next screen (<a href=\"%s\">details</a>).</p>" +msgid "<p>You do not need to include your email in the request in order to get a reply, as we will ask for it on the next screen (<a href=\"{{url}}\">details</a>).</p>" msgstr "" #: app/controllers/request_controller.rb:324 @@ -327,7 +321,7 @@ msgstr "" #: app/views/request/new.rhtml:135 msgid "" "<strong> Can I request information about myself?</strong>\n" -"\t\t\t<a href=\"%s\">No! (Click here for details)</a>" +"\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>" msgstr "" #: app/views/general/_advanced_search_tips.rhtml:12 @@ -413,7 +407,7 @@ msgstr "" #: app/views/request/preview.rhtml:31 msgid "" "<strong>Privacy note:</strong> If you want to request private information about\n" -" yourself then <a href=\"%s\">click here</a>." +" yourself then <a href=\"{{url}}\">click here</a>." msgstr "" #: app/views/user/set_crop_profile_photo.rhtml:35 @@ -576,7 +570,7 @@ msgstr "" #: app/views/request/show_response.rhtml:29 msgid "" "At the bottom of this page, write a reply to them trying to persuade them to scan it in\n" -" (<a href=\"%s\">more details</a>)." +" (<a href=\"{{url}}\">more details</a>)." msgstr "" #: app/views/request/upload_response.rhtml:33 @@ -921,7 +915,7 @@ msgstr "" #: app/views/request/upload_response.rhtml:23 msgid "" "Enter your response below. You may attach one file (use email, or \n" -"<a href=\"%s\">contact us</a> if you need more)." +"<a href=\"{{url}}\">contact us</a> if you need more)." msgstr "" #: app/models/info_request.rb:259 app/models/info_request.rb:277 @@ -950,16 +944,16 @@ msgstr "" #: app/views/request/new.rhtml:128 msgid "" -"Everything that you enter on this page \n" +"Everything that you enter on this page\n" " will be <strong>displayed publicly</strong> on\n" -" this website forever (<a href=\"%s\">why?</a>)." +" this website forever (<a href=\"{{url}}\">why?</a>)." msgstr "" #: app/views/request/new.rhtml:120 msgid "" -"Everything that you enter on this page, including <strong>your name</strong>, \n" +"Everything that you enter on this page, including <strong>your name</strong>,\n" " will be <strong>displayed publicly</strong> on\n" -" this website forever (<a href=\"%s\">why?</a>)." +" this website forever (<a href=\"{{url}}\">why?</a>)." msgstr "" #: locale/model_attributes.rb:68 @@ -1007,7 +1001,7 @@ msgid "Failed to convert image to a PNG" msgstr "" #: app/models/profile_photo.rb:105 -msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}" +msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}" msgstr "" #: app/views/general/search.rhtml:117 @@ -1018,7 +1012,7 @@ msgstr "" msgid "" "First, type in the <strong>name of the UK public authority</strong> you'd \n" " like information from. <strong>By law, they have to respond</strong>\n" -" (<a href=\"%s#%s\">why?</a>)." +" (<a href=\"{{url}}\">why?</a>)." msgstr "" #: locale/model_attributes.rb:88 @@ -1147,7 +1141,7 @@ msgstr "" msgid "" "From the request page, try replying to a particular message, rather than sending\n" " a general followup. If you need to make a general followup, and know\n" -" an email which will go to the right place, please <a href=\"%s\">send it to us</a>." +" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>." msgstr "" #: app/views/request/_correspondence.rhtml:12 @@ -1278,7 +1272,7 @@ msgid "I've received an <strong>error message</strong>" msgstr "" #: app/views/public_body/view_email.rhtml:28 -msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>." +msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>." msgstr "" #: app/views/request_mailer/stopped_responses.rhtml:10 @@ -1292,21 +1286,21 @@ msgstr "" msgid "" "If you are dissatisfied by the response you got from\n" " the public authority, you have the right to\n" -" complain (<a href=\"%s\">details</a>)." +" complain (<a href=\"{{url}}\">details</a>)." msgstr "" #: app/views/user/no_cookies.rhtml:20 -msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>." +msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>." msgstr "" #: app/views/request/hidden.rhtml:15 -msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request." +msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request." msgstr "" #: app/views/request/new.rhtml:123 msgid "" "If you are thinking of using a pseudonym,\n" -" please <a href=\"%s\">read this first</a>." +" please <a href=\"{{url}}\">read this first</a>." msgstr "" #: app/views/request/show.rhtml:105 @@ -1423,10 +1417,6 @@ msgstr "" msgid "InfoRequestEvent|Params yaml" msgstr "" -#: locale/model_attributes.rb:41 -msgid "InfoRequestEvent|Prominence" -msgstr "" - #: locale/model_attributes.rb:102 msgid "InfoRequest|Allow new responses from" msgstr "" @@ -1497,7 +1487,7 @@ msgid "Joined {{site_name}} in" msgstr "" #: app/views/request/new.rhtml:106 -msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)." +msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)." msgstr "" #: app/views/request/_request_filter_form.rhtml:6 @@ -1837,7 +1827,7 @@ msgid "Please" msgstr "" #: app/views/user/no_cookies.rhtml:15 -msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it." +msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it." msgstr "" #: app/views/request/show.rhtml:52 @@ -1990,7 +1980,7 @@ msgid "" msgstr "" #: app/models/outgoing_message.rb:157 -msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature" +msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature" msgstr "" #: app/views/user/sign.rhtml:8 @@ -2337,8 +2327,9 @@ msgid "Search the site to find what you were looking for." msgstr "" #: app/views/public_body/show.rhtml:85 -msgid "Search within the %d Freedom of Information requests to %s" -msgid_plural "Search within the %d Freedom of Information requests made to %s" +msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}" +msgid_plural "Search within the {{count}} Freedom of Information requests to {{public_body_name}}" + msgstr[0] "" msgstr[1] "" @@ -2680,10 +2671,7 @@ msgid "The request was refused by the public authority" msgstr "" #: app/views/request/hidden.rhtml:9 -msgid "" -"The request you have tried to view has been removed. There are\n" -"various reasons why we might have done this, sorry we can't be more specific here. Please <a\n" -" href=\"%s\">contact us</a> if you have any questions." +msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions." msgstr "" #: app/views/general/_advanced_search_tips.rhtml:36 @@ -2692,14 +2680,14 @@ msgstr "" #: app/views/request/_followup.rhtml:59 msgid "" -"The response to your request has been <strong>delayed</strong>. You can say that, \n" +"The response to your request has been <strong>delayed</strong>. You can say that,\n" " by law, the authority should normally have responded\n" " <strong>promptly</strong> and" msgstr "" #: app/views/request/_followup.rhtml:71 msgid "" -"The response to your request is <strong>long overdue</strong>. You can say that, by \n" +"The response to your request is <strong>long overdue</strong>. You can say that, by\n" " law, under all circumstances, the authority should have responded\n" " by now" msgstr "" @@ -2804,15 +2792,9 @@ msgstr "" msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote." msgstr "" -#: app/views/public_body/show.rhtml:7 -msgid "There is %d person following this authority" -msgid_plural "There are %d people following this authority" -msgstr[0] "" -msgstr[1] "" - #: app/views/request/_sidebar.rhtml:5 -msgid "There is %d person following this request" -msgid_plural "There are %d people following this request" +msgid "There is {{count}} person following this request" +msgid_plural "There are {{count}} people following this request" msgstr[0] "" msgstr[1] "" @@ -2876,7 +2858,7 @@ msgstr "" #: app/views/request/_hidden_correspondence.rhtml:23 msgid "" "This comment has been hidden. See annotations to\n" -" find out why. If you are the requester, then you may <a href=\"%s\">sign in</a> to view the response." +" find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response." msgstr "" #: app/views/request/new.rhtml:63 @@ -2906,7 +2888,7 @@ msgstr "" #: app/views/request/_hidden_correspondence.rhtml:17 msgid "" "This outgoing message has been hidden. See annotations to\n" -"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"%s\">sign in</a> to view the response." +"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response." msgstr "" #: app/views/request/_describe_state.rhtml:44 @@ -2919,14 +2901,14 @@ msgid "This person has made no Freedom of Information requests using this site." msgstr "" #: app/views/user/show.rhtml:149 -msgid "This person's %d Freedom of Information request" -msgid_plural "This person's %d Freedom of Information requests" +msgid "This person's {{count}} Freedom of Information request" +msgid_plural "This person's {{count}} Freedom of Information requests" msgstr[0] "" msgstr[1] "" #: app/views/user/show.rhtml:179 -msgid "This person's %d annotation" -msgid_plural "This person's %d annotations" +msgid "This person's {{count}} annotation" +msgid_plural "This person's {{count}} annotations" msgstr[0] "" msgstr[1] "" @@ -2965,7 +2947,7 @@ msgstr "" #: app/views/request/show.rhtml:11 msgid "" "This request is hidden, so that only you the requester can see it. Please\n" -" <a href=\"%s\">contact us</a> if you are not sure why." +" <a href=\"{{url}}\">contact us</a> if you are not sure why." msgstr "" #: app/views/request/_describe_state.rhtml:7 @@ -2976,7 +2958,7 @@ msgstr "" #: app/views/request/_hidden_correspondence.rhtml:10 msgid "" "This response has been hidden. See annotations to find out why.\n" -" If you are the requester, then you may <a href=\"%s\">sign in</a> to view the response." +" If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response." msgstr "" #: app/views/request/details.rhtml:6 @@ -3202,7 +3184,7 @@ msgstr "" msgid "" "Unfortunately we don't know the FOI\n" "email address for that authority, so we can't validate this.\n" -"Please <a href=\"%s\">contact us</a> to sort it out." +"Please <a href=\"{{url}}\">contact us</a> to sort it out." msgstr "" #: app/views/request/new_bad_contact.rhtml:5 @@ -3439,7 +3421,7 @@ msgid "" msgstr "" #: app/views/request/new_please_describe.rhtml:16 -msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request." +msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request." msgstr "" #: app/views/request/show_response.rhtml:13 @@ -3571,7 +3553,7 @@ msgstr "" msgid "" "You may be able to find\n" " one on their website, or by phoning them up and asking. If you manage\n" -" to find one, then please <a href=\"%s\">send it to us</a>." +" to find one, then please <a href=\"{{url}}\">send it to us</a>." msgstr "" #: app/views/request/new_bad_contact.rhtml:6 @@ -3642,24 +3624,19 @@ msgid "You've now cleared your profile photo" msgstr "" #: app/views/user/show.rhtml:149 -msgid "Your %d Freedom of Information request" -msgid_plural "Your %d Freedom of Information requests" +msgid "Your {{count}} Freedom of Information request" +msgid_plural "Your {{count}} Freedom of Information requests" msgstr[0] "" msgstr[1] "" #: app/views/user/show.rhtml:179 -msgid "Your %d annotation" -msgid_plural "Your %d annotations" +msgid "Your {{count}} annotation" +msgid_plural "Your {{count}} annotations" msgstr[0] "" msgstr[1] "" #: app/views/user/_signup.rhtml:22 -msgid "" -"Your <strong>name will appear publicly</strong> \n" -" (<a href=\"%s\">why?</a>)\n" -" on this website and in search engines. If you\n" -" are thinking of using a pseudonym, please \n" -" <a href=\"%s\">read this first</a>." +msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>." msgstr "" #: app/views/user/show.rhtml:172 @@ -3682,7 +3659,7 @@ msgid "Your email subscriptions" msgstr "" #: app/controllers/request_controller.rb:598 -msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"%s\">contact us</a> if you really want to send a follow up message." +msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message." msgstr "" #: app/controllers/request_controller.rb:626 @@ -3712,7 +3689,7 @@ msgstr "" #: app/views/request/preview.rhtml:8 msgid "" "Your name, request and any responses will appear in <strong>search engines</strong>\n" -" (<a href=\"%s\">details</a>)." +" (<a href=\"{{url}}\">details</a>)." msgstr "" #: app/views/user/_signup.rhtml:18 @@ -3746,7 +3723,7 @@ msgid "Your request:" msgstr "" #: app/views/request/upload_response.rhtml:8 -msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions." +msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions." msgstr "" #: app/views/comment/new.rhtml:63 @@ -3990,7 +3967,7 @@ msgid "" "no longer exists. If you are trying to make\n" " From the request page, try replying to a particular message, rather than sending\n" " a general followup. If you need to make a general followup, and know\n" -" an email which will go to the right place, please <a href=\"%s\">send it to us</a>." +" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>." msgstr "" #: app/views/request/show.rhtml:72 diff --git a/spec/fixtures/locale/en_GB/app.po b/spec/fixtures/locale/en_GB/app.po index 91af9b72b..f106273a0 100644 --- a/spec/fixtures/locale/en_GB/app.po +++ b/spec/fixtures/locale/en_GB/app.po @@ -31,7 +31,7 @@ msgid "" msgstr "" #: app/views/comment/_comment_form.rhtml:16 -msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)" +msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)" msgstr "" #: app/views/request/upload_response.rhtml:40 @@ -71,7 +71,7 @@ msgstr "" #: app/views/public_body/view_email.rhtml:30 msgid "" -" If you know the address to use, then please <a href=\"%s\">send it to us</a>.\n" +" If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\n" " You may be able to find the address on their website, or by phoning them up and asking." msgstr "" @@ -123,20 +123,20 @@ msgid " when you send this message." msgstr "" #: app/views/public_body/show.rhtml:87 -msgid "%d Freedom of Information request to %s" -msgid_plural "%d Freedom of Information requests to %s" +msgid "{{count}} Freedom of Information request to {{public_body_name}}" +msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}" msgstr[0] "" msgstr[1] "" #: app/views/general/frontpage.rhtml:43 -msgid "%d request" -msgid_plural "%d requests" +msgid "{{count}} request" +msgid_plural "{{count}} requests" msgstr[0] "" msgstr[1] "" #: app/views/public_body/_body_listing_single.rhtml:21 -msgid "%d request made." -msgid_plural "%d requests made." +msgid "{{count}} request made." +msgid_plural "{{count}} requests made." msgstr[0] "" msgstr[1] "" @@ -187,43 +187,37 @@ msgstr "" msgid "3. Now check your request" msgstr "" -#: app/views/public_body/show.rhtml:56 -msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>" -msgstr "" - #: app/views/request/_after_actions.rhtml:9 -msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)" +msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)" msgstr "" #: app/views/public_body/list.rhtml:29 -msgid "<a href=\"%s\">Are we missing a public authority?</a>." +msgid "Are we missing a public authority?" msgstr "" #: app/views/request/_sidebar.rhtml:39 -msgid "" -"<a href=\"%s\">Are you the owner of\n" -" any commercial copyright on this page?</a>" +msgid "Are you the owner of any commercial copyright on this page?" msgstr "" #: app/views/general/search.rhtml:168 -msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>." +msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>." msgstr "" #: app/views/public_body/list.rhtml:51 -msgid "<a href=\"%s\">Can't find the one you want?</a>" +msgid "Can't find the one you want?" msgstr "" #: app/views/user/show.rhtml:118 -msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)" +msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)" msgstr "" #: app/views/request/_followup.rhtml:66 app/views/request/_followup.rhtml:73 #: app/views/request/show.rhtml:83 app/views/request/show.rhtml:87 -msgid "<a href=\"%s\">details</a>" +msgid "details" msgstr "" #: app/views/request/_followup.rhtml:101 -msgid "<a href=\"%s\">what's that?</a>" +msgid "what's that?" msgstr "" #: app/controllers/request_game_controller.rb:23 @@ -293,11 +287,11 @@ msgid "<p>We're glad you got some of the information that you wanted. If you fou msgstr "" #: app/controllers/request_controller.rb:318 -msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"%s\">details</a>).</p>" +msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>" msgstr "" #: app/controllers/request_controller.rb:316 -msgid "<p>You do not need to include your email in the request in order to get a reply, as we will ask for it on the next screen (<a href=\"%s\">details</a>).</p>" +msgid "<p>You do not need to include your email in the request in order to get a reply, as we will ask for it on the next screen (<a href=\"{{url}}\">details</a>).</p>" msgstr "" #: app/controllers/request_controller.rb:324 @@ -327,7 +321,7 @@ msgstr "" #: app/views/request/new.rhtml:135 msgid "" "<strong> Can I request information about myself?</strong>\n" -"\t\t\t<a href=\"%s\">No! (Click here for details)</a>" +"\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>" msgstr "" #: app/views/general/_advanced_search_tips.rhtml:12 @@ -413,7 +407,7 @@ msgstr "" #: app/views/request/preview.rhtml:31 msgid "" "<strong>Privacy note:</strong> If you want to request private information about\n" -" yourself then <a href=\"%s\">click here</a>." +" yourself then <a href=\"{{url}}\">click here</a>." msgstr "" #: app/views/user/set_crop_profile_photo.rhtml:35 @@ -576,7 +570,7 @@ msgstr "" #: app/views/request/show_response.rhtml:29 msgid "" "At the bottom of this page, write a reply to them trying to persuade them to scan it in\n" -" (<a href=\"%s\">more details</a>)." +" (<a href=\"{{url}}\">more details</a>)." msgstr "" #: app/views/request/upload_response.rhtml:33 @@ -921,7 +915,7 @@ msgstr "" #: app/views/request/upload_response.rhtml:23 msgid "" "Enter your response below. You may attach one file (use email, or \n" -"<a href=\"%s\">contact us</a> if you need more)." +"<a href=\"{{url}}\">contact us</a> if you need more)." msgstr "" #: app/models/info_request.rb:259 app/models/info_request.rb:277 @@ -950,16 +944,16 @@ msgstr "" #: app/views/request/new.rhtml:128 msgid "" -"Everything that you enter on this page \n" +"Everything that you enter on this page\n" " will be <strong>displayed publicly</strong> on\n" -" this website forever (<a href=\"%s\">why?</a>)." +" this website forever (<a href=\"{{url}}\">why?</a>)." msgstr "" #: app/views/request/new.rhtml:120 msgid "" -"Everything that you enter on this page, including <strong>your name</strong>, \n" +"Everything that you enter on this page, including <strong>your name</strong>,\n" " will be <strong>displayed publicly</strong> on\n" -" this website forever (<a href=\"%s\">why?</a>)." +" this website forever (<a href=\"{{url}}\">why?</a>)." msgstr "" #: locale/model_attributes.rb:68 @@ -1007,7 +1001,7 @@ msgid "Failed to convert image to a PNG" msgstr "" #: app/models/profile_photo.rb:105 -msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}" +msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}" msgstr "" #: app/views/general/search.rhtml:117 @@ -1018,7 +1012,7 @@ msgstr "" msgid "" "First, type in the <strong>name of the UK public authority</strong> you'd \n" " like information from. <strong>By law, they have to respond</strong>\n" -" (<a href=\"%s#%s\">why?</a>)." +" (<a href=\"{{url}}\">why?</a>)." msgstr "" #: locale/model_attributes.rb:88 @@ -1147,7 +1141,7 @@ msgstr "" msgid "" "From the request page, try replying to a particular message, rather than sending\n" " a general followup. If you need to make a general followup, and know\n" -" an email which will go to the right place, please <a href=\"%s\">send it to us</a>." +" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>." msgstr "" #: app/views/request/_correspondence.rhtml:12 @@ -1278,7 +1272,7 @@ msgid "I've received an <strong>error message</strong>" msgstr "" #: app/views/public_body/view_email.rhtml:28 -msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>." +msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>." msgstr "" #: app/views/request_mailer/stopped_responses.rhtml:10 @@ -1292,21 +1286,21 @@ msgstr "" msgid "" "If you are dissatisfied by the response you got from\n" " the public authority, you have the right to\n" -" complain (<a href=\"%s\">details</a>)." +" complain (<a href=\"{{url}}\">details</a>)." msgstr "" #: app/views/user/no_cookies.rhtml:20 -msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>." +msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>." msgstr "" #: app/views/request/hidden.rhtml:15 -msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request." +msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request." msgstr "" #: app/views/request/new.rhtml:123 msgid "" "If you are thinking of using a pseudonym,\n" -" please <a href=\"%s\">read this first</a>." +" please <a href=\"{{url}}\">read this first</a>." msgstr "" #: app/views/request/show.rhtml:105 @@ -1423,10 +1417,6 @@ msgstr "" msgid "InfoRequestEvent|Params yaml" msgstr "" -#: locale/model_attributes.rb:41 -msgid "InfoRequestEvent|Prominence" -msgstr "" - #: locale/model_attributes.rb:102 msgid "InfoRequest|Allow new responses from" msgstr "" @@ -1497,7 +1487,7 @@ msgid "Joined {{site_name}} in" msgstr "" #: app/views/request/new.rhtml:106 -msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)." +msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)." msgstr "" #: app/views/request/_request_filter_form.rhtml:6 @@ -1837,7 +1827,7 @@ msgid "Please" msgstr "" #: app/views/user/no_cookies.rhtml:15 -msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it." +msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it." msgstr "" #: app/views/request/show.rhtml:52 @@ -1990,7 +1980,7 @@ msgid "" msgstr "" #: app/models/outgoing_message.rb:157 -msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature" +msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature" msgstr "" #: app/views/user/sign.rhtml:8 @@ -2337,8 +2327,8 @@ msgid "Search the site to find what you were looking for." msgstr "" #: app/views/public_body/show.rhtml:85 -msgid "Search within the %d Freedom of Information requests to %s" -msgid_plural "Search within the %d Freedom of Information requests made to %s" +msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}" +msgid_plural "Search within the {{count}} Freedom of Information requests to {{public_body_name}}" msgstr[0] "" msgstr[1] "" @@ -2680,10 +2670,7 @@ msgid "The request was refused by the public authority" msgstr "" #: app/views/request/hidden.rhtml:9 -msgid "" -"The request you have tried to view has been removed. There are\n" -"various reasons why we might have done this, sorry we can't be more specific here. Please <a\n" -" href=\"%s\">contact us</a> if you have any questions." +msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions." msgstr "" #: app/views/general/_advanced_search_tips.rhtml:36 @@ -2692,14 +2679,14 @@ msgstr "" #: app/views/request/_followup.rhtml:59 msgid "" -"The response to your request has been <strong>delayed</strong>. You can say that, \n" +"The response to your request has been <strong>delayed</strong>. You can say that,\n" " by law, the authority should normally have responded\n" " <strong>promptly</strong> and" msgstr "" #: app/views/request/_followup.rhtml:71 msgid "" -"The response to your request is <strong>long overdue</strong>. You can say that, by \n" +"The response to your request is <strong>long overdue</strong>. You can say that, by\n" " law, under all circumstances, the authority should have responded\n" " by now" msgstr "" @@ -2804,15 +2791,9 @@ msgstr "" msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote." msgstr "" -#: app/views/public_body/show.rhtml:7 -msgid "There is %d person following this authority" -msgid_plural "There are %d people following this authority" -msgstr[0] "" -msgstr[1] "" - #: app/views/request/_sidebar.rhtml:5 -msgid "There is %d person following this request" -msgid_plural "There are %d people following this request" +msgid "There is {{count}} person following this request" +msgid_plural "There are {{count}} people following this request" msgstr[0] "" msgstr[1] "" @@ -2876,7 +2857,7 @@ msgstr "" #: app/views/request/_hidden_correspondence.rhtml:23 msgid "" "This comment has been hidden. See annotations to\n" -" find out why. If you are the requester, then you may <a href=\"%s\">sign in</a> to view the response." +" find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response." msgstr "" #: app/views/request/new.rhtml:63 @@ -2906,7 +2887,7 @@ msgstr "" #: app/views/request/_hidden_correspondence.rhtml:17 msgid "" "This outgoing message has been hidden. See annotations to\n" -"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"%s\">sign in</a> to view the response." +"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response." msgstr "" #: app/views/request/_describe_state.rhtml:44 @@ -2919,14 +2900,14 @@ msgid "This person has made no Freedom of Information requests using this site." msgstr "" #: app/views/user/show.rhtml:149 -msgid "This person's %d Freedom of Information request" -msgid_plural "This person's %d Freedom of Information requests" +msgid "This person's {{count}} Freedom of Information request" +msgid_plural "This person's {{count}} Freedom of Information requests" msgstr[0] "" msgstr[1] "" #: app/views/user/show.rhtml:179 -msgid "This person's %d annotation" -msgid_plural "This person's %d annotations" +msgid "This person's {{count}} annotation" +msgid_plural "This person's {{count}} annotations" msgstr[0] "" msgstr[1] "" @@ -2965,7 +2946,7 @@ msgstr "" #: app/views/request/show.rhtml:11 msgid "" "This request is hidden, so that only you the requester can see it. Please\n" -" <a href=\"%s\">contact us</a> if you are not sure why." +" <a href=\"{{url}}\">contact us</a> if you are not sure why." msgstr "" #: app/views/request/_describe_state.rhtml:7 @@ -2976,7 +2957,7 @@ msgstr "" #: app/views/request/_hidden_correspondence.rhtml:10 msgid "" "This response has been hidden. See annotations to find out why.\n" -" If you are the requester, then you may <a href=\"%s\">sign in</a> to view the response." +" If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response." msgstr "" #: app/views/request/details.rhtml:6 @@ -3202,7 +3183,7 @@ msgstr "" msgid "" "Unfortunately we don't know the FOI\n" "email address for that authority, so we can't validate this.\n" -"Please <a href=\"%s\">contact us</a> to sort it out." +"Please <a href=\"{{url}}\">contact us</a> to sort it out." msgstr "" #: app/views/request/new_bad_contact.rhtml:5 @@ -3439,7 +3420,7 @@ msgid "" msgstr "" #: app/views/request/new_please_describe.rhtml:16 -msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request." +msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request." msgstr "" #: app/views/request/show_response.rhtml:13 @@ -3571,7 +3552,7 @@ msgstr "" msgid "" "You may be able to find\n" " one on their website, or by phoning them up and asking. If you manage\n" -" to find one, then please <a href=\"%s\">send it to us</a>." +" to find one, then please <a href=\"{{url}}\">send it to us</a>." msgstr "" #: app/views/request/new_bad_contact.rhtml:6 @@ -3642,24 +3623,19 @@ msgid "You've now cleared your profile photo" msgstr "" #: app/views/user/show.rhtml:149 -msgid "Your %d Freedom of Information request" -msgid_plural "Your %d Freedom of Information requests" +msgid "Your {{count}} Freedom of Information request" +msgid_plural "Your {{count}} Freedom of Information requests" msgstr[0] "" msgstr[1] "" #: app/views/user/show.rhtml:179 -msgid "Your %d annotation" -msgid_plural "Your %d annotations" +msgid "Your {{count}} annotation" +msgid_plural "Your {{count}} annotations" msgstr[0] "" msgstr[1] "" #: app/views/user/_signup.rhtml:22 -msgid "" -"Your <strong>name will appear publicly</strong> \n" -" (<a href=\"%s\">why?</a>)\n" -" on this website and in search engines. If you\n" -" are thinking of using a pseudonym, please \n" -" <a href=\"%s\">read this first</a>." +msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>." msgstr "" #: app/views/user/show.rhtml:172 @@ -3682,7 +3658,7 @@ msgid "Your email subscriptions" msgstr "" #: app/controllers/request_controller.rb:598 -msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"%s\">contact us</a> if you really want to send a follow up message." +msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message." msgstr "" #: app/controllers/request_controller.rb:626 @@ -3712,7 +3688,7 @@ msgstr "" #: app/views/request/preview.rhtml:8 msgid "" "Your name, request and any responses will appear in <strong>search engines</strong>\n" -" (<a href=\"%s\">details</a>)." +" (<a href=\"{{url}}\">details</a>)." msgstr "" #: app/views/user/_signup.rhtml:18 @@ -3746,7 +3722,7 @@ msgid "Your request:" msgstr "" #: app/views/request/upload_response.rhtml:8 -msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions." +msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions." msgstr "" #: app/views/comment/new.rhtml:63 @@ -3990,7 +3966,7 @@ msgid "" "no longer exists. If you are trying to make\n" " From the request page, try replying to a particular message, rather than sending\n" " a general followup. If you need to make a general followup, and know\n" -" an email which will go to the right place, please <a href=\"%s\">send it to us</a>." +" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>." msgstr "" #: app/views/request/show.rhtml:72 diff --git a/spec/fixtures/locale/es/app.po b/spec/fixtures/locale/es/app.po index 4e54a1d40..2e0f4302a 100644 --- a/spec/fixtures/locale/es/app.po +++ b/spec/fixtures/locale/es/app.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # David Cabo <david.cabo@gmail.com>, 2011, 2012. # skenaja <alex@alexskene.com>, 2011. @@ -35,9 +35,9 @@ msgstr " Esto aparecerá en tu perfil de {{site_name}}, para facilitar\n #: app/views/comment/_comment_form.rhtml:16 msgid "" -" (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation " +" (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation " "policy</a>)" -msgstr " (<strong>sin ataques políticos</strong>, lea nuestra <a href=\"%s\">política de moderación</a>)" +msgstr " (<strong>sin ataques políticos</strong>, lea nuestra <a href=\"{{url}}\">política de moderación</a>)" #: app/views/request/upload_response.rhtml:40 msgid "" @@ -80,9 +80,9 @@ msgstr " Ideas sobre <strong>qué otra información pedir</strong> que el organi #: app/views/public_body/view_email.rhtml:30 msgid "" -" If you know the address to use, then please <a href=\"%s\">send it to us</a>.\n" +" If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\n" " You may be able to find the address on their website, or by phoning them up and asking." -msgstr " Si conoces la dirección a utilizar, entonces por favor <a href=\"%s\">envíanosla</a>.\n Puede que la encuentres en su página web, o llamándoles por teléfono y preguntando." +msgstr " Si conoces la dirección a utilizar, entonces por favor <a href=\"{{url}}\">envíanosla</a>.\n Puede que la encuentres en su página web, o llamándoles por teléfono y preguntando." #: app/views/user/set_profile_about_me.rhtml:26 msgid "" @@ -140,22 +140,22 @@ msgid " when you send this message." msgstr " cuando envió este mensaje." #: app/views/public_body/show.rhtml:87 -msgid "%d Freedom of Information request to %s" -msgid_plural "%d Freedom of Information requests to %s" -msgstr[0] "%d solicitud de información a %s" -msgstr[1] "%d solicitudes de información a %s" +msgid "{{count}} Freedom of Information request to {{public_body_name}}" +msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}" +msgstr[0] "{{count}} solicitud de información a {{public_body_name}}" +msgstr[1] "{{count}} solicitudes de información a {{public_body_name}}" #: app/views/general/frontpage.rhtml:43 -msgid "%d request" -msgid_plural "%d requests" -msgstr[0] "%d solicitud" -msgstr[1] "%d solicitudes" +msgid "{{count}} request" +msgid_plural "{{count}} requests" +msgstr[0] "{{count}} solicitud" +msgstr[1] "{{count}} solicitudes" #: app/views/public_body/_body_listing_single.rhtml:21 -msgid "%d request made." -msgid_plural "%d requests made." -msgstr[0] "%d solicitud enviada." -msgstr[1] "%d solicitudes enviadas." +msgid "{{count}} request made." +msgid_plural "{{count}} requests made." +msgstr[0] "{{count}} solicitud enviada." +msgstr[1] "{{count}} solicitudes enviadas." #: app/views/request/new.rhtml:92 msgid "'Crime statistics by ward level for Wales'" @@ -204,46 +204,40 @@ msgstr "2. Solicite información" msgid "3. Now check your request" msgstr "3. Revisa tu solicitud" -#: app/views/public_body/show.rhtml:56 -msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>" -msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>" - #: app/views/request/_after_actions.rhtml:9 -msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)" -msgstr "<a href=\"%s\">Añade un comentario</a> (para ayudar al solicitante o a otros)" +msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)" +msgstr "<a href=\"{{url}}\">Añade un comentario</a> (para ayudar al solicitante o a otros)" #: app/views/public_body/list.rhtml:29 -msgid "<a href=\"%s\">Are we missing a public authority?</a>." -msgstr "<a href=\"%s\">¿Nos falta algún organismo público?</a>." +msgid "Are we missing a public authority?" +msgstr "¿Nos falta algún organismo público?." #: app/views/request/_sidebar.rhtml:39 -msgid "" -"<a href=\"%s\">Are you the owner of\n" -" any commercial copyright on this page?</a>" -msgstr "<a href=\"%s\">¿Posee el copyright\n de alguna información de esta página?</a>" +msgid "Are you the owner of any commercial copyright on this page?" +msgstr "¿Posee el copyright de alguna información de esta página?" #: app/views/general/search.rhtml:168 -msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>." -msgstr "<a href=\"%s\">Ver todas</a> o <a href=\"%s\">pídanos que añadamos una</a>." +msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>." +msgstr "<a href=\"{{browse_url}}\">Ver todas</a> o <a href=\"{{add_url}}\">pídanos que añadamos una</a>." #: app/views/public_body/list.rhtml:51 -msgid "<a href=\"%s\">Can't find the one you want?</a>" -msgstr "<a href=\"%s\">¿No encuentra el que busca?</a>" +msgid "Can't find the one you want?" +msgstr "¿No encuentra el que busca?" #: app/views/user/show.rhtml:118 msgid "" -"<a href=\"%s\">Sign in</a> to change password, subscriptions and more " +"<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more " "({{user_name}} only)" -msgstr "<a href=\"%s\">Abre una sesión</a> para cambiar tu contraseña, suscripciones... (sólo {{user_name}})" +msgstr "<a href=\"{{url}}\">Abre una sesión</a> para cambiar tu contraseña, suscripciones... (sólo {{user_name}})" #: app/views/request/_followup.rhtml:66 app/views/request/_followup.rhtml:73 #: app/views/request/show.rhtml:83 app/views/request/show.rhtml:87 -msgid "<a href=\"%s\">details</a>" -msgstr "<a href=\"%s\">detalles</a>" +msgid "details" +msgstr "detalles" #: app/views/request/_followup.rhtml:101 -msgid "<a href=\"%s\">what's that?</a>" -msgstr "<a href=\"%s\">¿Qué es eso?</a>" +msgid "what's that?" +msgstr "¿Qué es eso?" #: app/controllers/request_game_controller.rb:23 msgid "" @@ -382,8 +376,8 @@ msgstr "<small>Si usas correo web o tiene filtros \"anti spam\", por favor compr #: app/views/request/new.rhtml:135 msgid "" "<strong> Can I request information about myself?</strong>\n" -"\t\t\t<a href=\"%s\">No! (Click here for details)</a>" -msgstr "<strong> ¿Puedo pedir información sobre mí?</strong>\n\t\t\t<a href=\"%s\">¡No! (Pulse aquí para más detalles)</a>" +"\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>" +msgstr "<strong> ¿Puedo pedir información sobre mí?</strong>\n\t\t\t<a href=\"{{url}}\">¡No! (Pulse aquí para más detalles)</a>" #: app/views/general/_advanced_search_tips.rhtml:12 msgid "" @@ -486,8 +480,8 @@ msgstr "<strong>Nota:</strong> Te estás enviando un mensaje a ti mismo, suponem #: app/views/request/preview.rhtml:31 msgid "" "<strong>Privacy note:</strong> If you want to request private information about\n" -" yourself then <a href=\"%s\">click here</a>." -msgstr "<strong>Nota sobre privacidad:</strong> Si quiere solicitar información privada\n sobre sí mismo entonces <a href=\"%s\">siga este enlace</a>." +" yourself then <a href=\"{{url}}\">click here</a>." +msgstr "<strong>Nota sobre privacidad:</strong> Si quiere solicitar información privada\n sobre sí mismo entonces <a href=\"{{url}}\">siga este enlace</a>." #: app/views/user/set_crop_profile_photo.rhtml:35 msgid "" @@ -667,8 +661,8 @@ msgstr "Pide documentos o información <strong>específica</strong>, esta web no #: app/views/request/show_response.rhtml:29 msgid "" "At the bottom of this page, write a reply to them trying to persuade them to scan it in\n" -" (<a href=\"%s\">more details</a>)." -msgstr "Al final de esta página, escribe una respuesta intentando convencerles de que lo escaneen\n (<a href=\"%s\">más detalles</a>)." +" (<a href=\"{{url}}\">more details</a>)." +msgstr "Al final de esta página, escribe una respuesta intentando convencerles de que lo escaneen\n (<a href=\"{{url}}\">más detalles</a>)." #: app/views/request/upload_response.rhtml:33 msgid "Attachment (optional):" @@ -1037,8 +1031,8 @@ msgstr "Introduzca las palabras que desee separadas por espacio, es decir <stron #: app/views/request/upload_response.rhtml:23 msgid "" "Enter your response below. You may attach one file (use email, or \n" -"<a href=\"%s\">contact us</a> if you need more)." -msgstr "Escribe tu solicitud a continuación. Puedes adjuntar un fichero (manda un correo,\n o <a href=\"%s\">contáctanos</a>, si necesita más)." +"<a href=\"{{url}}\">contact us</a> if you need more)." +msgstr "Escribe tu solicitud a continuación. Puedes adjuntar un fichero (manda un correo,\n o <a href=\"{{url}}\">contáctanos</a>, si necesita más)." #: app/models/info_request.rb:259 app/models/info_request.rb:277 msgid "Environmental Information Regulations" @@ -1066,17 +1060,17 @@ msgstr "Historial de eventos" #: app/views/request/new.rhtml:128 msgid "" -"Everything that you enter on this page \n" +"Everything that you enter on this page\n" " will be <strong>displayed publicly</strong> on\n" -" this website forever (<a href=\"%s\">why?</a>)." -msgstr "Todo lo que escriba en esta página \n estará <strong>disponible públicamente</strong> en\n está web para siempre (<a href=\"%s\">¿por qué?</a>)." +" this website forever (<a href=\"{{url}}\">why?</a>)." +msgstr "Todo lo que escriba en esta página \n estará <strong>disponible públicamente</strong> en\n está web para siempre (<a href=\"{{url}}\">¿por qué?</a>)." #: app/views/request/new.rhtml:120 msgid "" -"Everything that you enter on this page, including <strong>your name</strong>, \n" +"Everything that you enter on this page, including <strong>your name</strong>,\n" " will be <strong>displayed publicly</strong> on\n" -" this website forever (<a href=\"%s\">why?</a>)." -msgstr "Todo lo que escribas en esta página, incluyendo <strong>tu nombre</strong>, \n estará <strong>disponible públicamente</strong> en\n está web para siempre (<a href=\"%s\">¿por qué?</a>)." +" this website forever (<a href=\"{{url}}\">why?</a>)." +msgstr "Todo lo que escribas en esta página, incluyendo <strong>tu nombre</strong>, \n estará <strong>disponible públicamente</strong> en\n está web para siempre (<a href=\"{{url}}\">¿por qué?</a>)." #: locale/model_attributes.rb:68 msgid "EximLogDone|Filename" @@ -1123,10 +1117,8 @@ msgid "Failed to convert image to a PNG" msgstr "Error al convertir la imagen a PNG" #: app/models/profile_photo.rb:105 -msgid "" -"Failed to convert image to the correct size: at %{cols}x%{rows}, need " -"%{width}x%{height}" -msgstr "Error al convertir la imagen al tamaño adecuado: es %{cols}x%{rows}, debería ser %{width}x%{height}" +msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}" +msgstr "Error al convertir la imagen al tamaño adecuado: es {{cols}}x{{rows}}, debería ser {{width}}x{{height}}" #: app/views/general/search.rhtml:117 msgid "Filter" @@ -1136,8 +1128,8 @@ msgstr "Filtrar" msgid "" "First, type in the <strong>name of the UK public authority</strong> you'd \n" " like information from. <strong>By law, they have to respond</strong>\n" -" (<a href=\"%s#%s\">why?</a>)." -msgstr "Primero, escribe el <strong>nombre de la institución</strong> a la que quieres pedir información. <strong>Están obligados a responder</strong> (<a href=\"%s#%s\">¿por qué?</a>)." +" (<a href=\"{{url}}\">why?</a>)." +msgstr "Primero, escribe el <strong>nombre de la institución</strong> a la que quieres pedir información. <strong>Están obligados a responder</strong> (<a href=\"{{url}}\">¿por qué?</a>)." #: locale/model_attributes.rb:88 msgid "FoiAttachment|Charset" @@ -1272,8 +1264,8 @@ msgstr "Solicitudes de información a" msgid "" "From the request page, try replying to a particular message, rather than sending\n" " a general followup. If you need to make a general followup, and know\n" -" an email which will go to the right place, please <a href=\"%s\">send it to us</a>." -msgstr "Desde la página de la solicitud, intenta responder a un mensaje en concreto, en vez de\n responder a la solicitud en general. Si necesitas hacerlo y tienes una dirección de\n correo válida, por favor <a href=\"%s\">mándanosla</a>." +" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>." +msgstr "Desde la página de la solicitud, intenta responder a un mensaje en concreto, en vez de\n responder a la solicitud en general. Si necesitas hacerlo y tienes una dirección de\n correo válida, por favor <a href=\"{{url}}\">mándanosla</a>." #: app/views/request/_correspondence.rhtml:12 #: app/views/request/_correspondence.rhtml:36 @@ -1409,8 +1401,8 @@ msgstr "He recibido un <strong>mensaje de error</strong>" #: app/views/public_body/view_email.rhtml:28 msgid "" "If the address is wrong, or you know a better address, please <a " -"href=\"%s\">contact us</a>." -msgstr "Si la dirección es incorrecta, o conoce una más actualizada, por favor <a href=\"%s\">contáctenos</a>." +"href=\"{{url}}\">contact us</a>." +msgstr "Si la dirección es incorrecta, o conoce una más actualizada, por favor <a href=\"{{url}}\">contáctenos</a>." #: app/views/request_mailer/stopped_responses.rhtml:10 msgid "" @@ -1423,24 +1415,24 @@ msgstr "Si no es correcto, o te gustaría enviar una respuesta a la solicitud\no msgid "" "If you are dissatisfied by the response you got from\n" " the public authority, you have the right to\n" -" complain (<a href=\"%s\">details</a>)." -msgstr "Si no estás satisfecho con la respuesta que has recibido del\n organismo público, tienes derecho a\n apelar (<a href=\"%s\">detalles</a>)." +" complain (<a href=\"{{url}}\">details</a>)." +msgstr "Si no estás satisfecho con la respuesta que has recibido del\n organismo público, tienes derecho a\n apelar (<a href=\"{{url}}\">detalles</a>)." #: app/views/user/no_cookies.rhtml:20 -msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>." -msgstr "Si aún tienes problemas, por favor <a href=\"%s\">contáctanos</a>." +msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>." +msgstr "Si aún tienes problemas, por favor <a href=\"{{url}}\">contáctanos</a>." #: app/views/request/hidden.rhtml:15 msgid "" -"If you are the requester, then you may <a href=\"%s\">sign in</a> to view " +"If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view " "the request." -msgstr "Si la solicitud es tuya, puedes <a href=\"%s\">abrir una sesión</a> para verla." +msgstr "Si la solicitud es tuya, puedes <a href=\"{{url}}\">abrir una sesión</a> para verla." #: app/views/request/new.rhtml:123 msgid "" "If you are thinking of using a pseudonym,\n" -" please <a href=\"%s\">read this first</a>." -msgstr "Si está pensando en utilizar un pseudónimo,\n por favor <a href=\"%s\">lea esto primero</a>." +" please <a href=\"{{url}}\">read this first</a>." +msgstr "Si está pensando en utilizar un pseudónimo,\n por favor <a href=\"{{url}}\">lea esto primero</a>." #: app/views/request/show.rhtml:105 msgid "If you are {{user_link}}, please" @@ -1561,10 +1553,6 @@ msgstr "InfoRequestEvent|Last described at" msgid "InfoRequestEvent|Params yaml" msgstr "InfoRequestEvent|Params yaml" -#: locale/model_attributes.rb:41 -msgid "InfoRequestEvent|Prominence" -msgstr "InfoRequestEvent|Prominence" - #: locale/model_attributes.rb:102 msgid "InfoRequest|Allow new responses from" msgstr "InfoRequest|Allow new responses from" @@ -1639,8 +1627,8 @@ msgstr "Registrado en {{site_name}} el" #: app/views/request/new.rhtml:106 msgid "" "Keep it <strong>focused</strong>, you'll be more likely to get what you want" -" (<a href=\"%s\">why?</a>)." -msgstr "Sea <strong>específico</strong>, tendrá más probabilidades de conseguir lo que quiere (<a href=\"%s\">¿por qué?</a>)." +" (<a href=\"{{url}}\">why?</a>)." +msgstr "Sea <strong>específico</strong>, tendrá más probabilidades de conseguir lo que quiere (<a href=\"{{url}}\">¿por qué?</a>)." #: app/views/request/_request_filter_form.rhtml:6 msgid "Keywords" @@ -1990,8 +1978,8 @@ msgid "Please" msgstr "Por favor" #: app/views/user/no_cookies.rhtml:15 -msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it." -msgstr "Por favor <a href=\"%s\">contacta</a> con nosotros para que podamos arreglarlo." +msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it." +msgstr "Por favor <a href=\"{{url}}\">contacta</a> con nosotros para que podamos arreglarlo." #: app/views/request/show.rhtml:52 msgid "" @@ -2154,10 +2142,8 @@ msgid "" msgstr "Por favor elije estas solicitudes una a una, y <strong>haz que se sepa</strong>\nsi han tenido éxito o no." #: app/models/outgoing_message.rb:157 -msgid "" -"Please sign at the bottom with your name, or alter the \"%{signoff}\" " -"signature" -msgstr "Por favor, firma con tu nombre en la parte inferior, o cambia la firma \"%{signoff}\"" +msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature" +msgstr "Por favor, firma con tu nombre en la parte inferior, o cambia la firma \"{{signoff}}\"" #: app/views/user/sign.rhtml:8 msgid "Please sign in as " @@ -2519,10 +2505,10 @@ msgid "Search the site to find what you were looking for." msgstr "Buscar en esta web para encontrar lo que busca." #: app/views/public_body/show.rhtml:85 -msgid "Search within the %d Freedom of Information requests to %s" -msgid_plural "Search within the %d Freedom of Information requests made to %s" -msgstr[0] "Busca en la %d solicitud de información hecha a %s" -msgstr[1] "Busca en las %d solicitudes de información hechas a %s" +msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}" +msgid_plural "Search within the {{count}} Freedom of Information requests to {{public_body_name}}" +msgstr[0] "Busca en la {{count}} solicitud de información hecha a {{public_body_name}}" +msgstr[1] "Busca en las {{count}} solicitudes de información hechas a {{public_body_name}}" #: app/views/user/show.rhtml:132 msgid "Search your contributions" @@ -2878,11 +2864,8 @@ msgid "The request was refused by the public authority" msgstr "La solicitud ha sido rechazada por el organismo" #: app/views/request/hidden.rhtml:9 -msgid "" -"The request you have tried to view has been removed. There are\n" -"various reasons why we might have done this, sorry we can't be more specific here. Please <a\n" -" href=\"%s\">contact us</a> if you have any questions." -msgstr "La solicitud que has intentado ver ha sido eliminada. Hay\nvarios posibles motivos para esto, pero no podemos ser más específicos aquí. Por favor <a\n href=\"%s\">contáctanos</a> si tiene cualquier pregunta." +msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions." +msgstr "La solicitud que has intentado ver ha sido eliminada. Hay\nvarios posibles motivos para esto, pero no podemos ser más específicos aquí. Por favor <a\n href=\"{{url}}\">contáctanos</a> si tiene cualquier pregunta." #: app/views/general/_advanced_search_tips.rhtml:36 msgid "The requester has abandoned this request for some reason" @@ -2890,14 +2873,14 @@ msgstr "El creador de la solicitud la ha cancelado por algún motivo" #: app/views/request/_followup.rhtml:59 msgid "" -"The response to your request has been <strong>delayed</strong>. You can say that, \n" +"The response to your request has been <strong>delayed</strong>. You can say that,\n" " by law, the authority should normally have responded\n" " <strong>promptly</strong> and" msgstr "La respuesta a tu solicitud ha sido <strong>retrasada</strong>.\n Por ley, el organismo debería normalmente haber respondido\n <strong>rápidamente</strong> y" #: app/views/request/_followup.rhtml:71 msgid "" -"The response to your request is <strong>long overdue</strong>. You can say that, by \n" +"The response to your request is <strong>long overdue</strong>. You can say that, by\n" " law, under all circumstances, the authority should have responded\n" " by now" msgstr "La respuesta a tu solicitud ha sido <strong>muy retrasada</strong>.\n Por ley, bajo cualquier circunstancia, el organismo ya debería\n haber respondido" @@ -3016,17 +2999,11 @@ msgid "" " this link to see what they wrote." msgstr "Hay {{count}} comentarios en tu solicitud {{info_request}}. Sigue este enlace para leer lo que dicen." -#: app/views/public_body/show.rhtml:7 -msgid "There is %d person following this authority" -msgid_plural "There are %d people following this authority" -msgstr[0] "Hay %d persona siguiendo a este organismo." -msgstr[1] "Hay %d personas siguiendo a este organismo." - #: app/views/request/_sidebar.rhtml:5 -msgid "There is %d person following this request" -msgid_plural "There are %d people following this request" -msgstr[0] "Hay %d persona siguiendo esta solicitud." -msgstr[1] "Hay %d personas siguiendo esta solicitud." +msgid "There is {{count}} person following this request" +msgid_plural "There are {{count}} people following this request" +msgstr[0] "Hay {{count}} persona siguiendo esta solicitud." +msgstr[1] "Hay {{count}} personas siguiendo esta solicitud." #: app/views/user/show.rhtml:8 msgid "" @@ -3099,8 +3076,8 @@ msgstr "Este organismo ya no existe, no pueden realizarse solicitudes de informa #: app/views/request/_hidden_correspondence.rhtml:23 msgid "" "This comment has been hidden. See annotations to\n" -" find out why. If you are the requester, then you may <a href=\"%s\">sign in</a> to view the response." -msgstr "Este respuesta está oculta. Revisa los comentarios\n para descubrir por qué. Si es tu solicitud, <a href=\"%s\">abre una sesión</a> para ver la respuesta." +" find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response." +msgstr "Este respuesta está oculta. Revisa los comentarios\n para descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abre una sesión</a> para ver la respuesta." #: app/views/request/new.rhtml:63 msgid "" @@ -3140,8 +3117,8 @@ msgstr "Esta es tu solicitud, por lo que recibirás correos automáticamente cua #: app/views/request/_hidden_correspondence.rhtml:17 msgid "" "This outgoing message has been hidden. See annotations to\n" -"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"%s\">sign in</a> to view the response." -msgstr "Este mensaje está oculto. Lee los comentarios\n\t\t\t\t\t\tpara descubrir por qué. Si es tu solicitud, <a href=\"%s\">abra una sesión</a> para ver la respuesta." +"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response." +msgstr "Este mensaje está oculto. Lee los comentarios\n\t\t\t\t\t\tpara descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abra una sesión</a> para ver la respuesta." #: app/views/request/_describe_state.rhtml:44 #: app/views/request/_other_describe_state.rhtml:40 @@ -3154,16 +3131,16 @@ msgid "" msgstr "Esta persona no ha realizado solicitudes de información usando esta web." #: app/views/user/show.rhtml:149 -msgid "This person's %d Freedom of Information request" -msgid_plural "This person's %d Freedom of Information requests" -msgstr[0] "Tu %d solicitud de información" -msgstr[1] "Tus %d solicitudes de información" +msgid "This person's {{count}} Freedom of Information request" +msgid_plural "This person's {{count}} Freedom of Information requests" +msgstr[0] "Tu {{count}} solicitud de información" +msgstr[1] "Tus {{count}} solicitudes de información" #: app/views/user/show.rhtml:179 -msgid "This person's %d annotation" -msgid_plural "This person's %d annotations" -msgstr[0] "Tu %d comentario" -msgstr[1] "Tus %d comentarios" +msgid "This person's {{count}} annotation" +msgid_plural "This person's {{count}} annotations" +msgstr[0] "Tu {{count}} comentario" +msgstr[1] "Tus {{count}} comentarios" #: app/views/user/show.rhtml:172 msgid "This person's annotations" @@ -3204,8 +3181,8 @@ msgstr "Esta solicitud tiene visibilidad 'oculta'. Puedes verla sólo porque est #: app/views/request/show.rhtml:11 msgid "" "This request is hidden, so that only you the requester can see it. Please\n" -" <a href=\"%s\">contact us</a> if you are not sure why." -msgstr "Esta solicitud está oculta, por lo que sólo tú como creador puedes verla. Por favor\n <a href=\"%s\">contáctanos</a> si no estás seguro de por qué." +" <a href=\"{{url}}\">contact us</a> if you are not sure why." +msgstr "Esta solicitud está oculta, por lo que sólo tú como creador puedes verla. Por favor\n <a href=\"{{url}}\">contáctanos</a> si no estás seguro de por qué." #: app/views/request/_describe_state.rhtml:7 #: app/views/request/_other_describe_state.rhtml:10 @@ -3215,8 +3192,8 @@ msgstr "Esta solicitud está todavía en proceso:" #: app/views/request/_hidden_correspondence.rhtml:10 msgid "" "This response has been hidden. See annotations to find out why.\n" -" If you are the requester, then you may <a href=\"%s\">sign in</a> to view the response." -msgstr "Este respuesta está oculta. Revisa los comentarios\n para descubrir por qué. Si es tu solicitud, <a href=\"%s\">abre una sesión</a> para ver la respuesta." +" If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response." +msgstr "Este respuesta está oculta. Revisa los comentarios\n para descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abre una sesión</a> para ver la respuesta." #: app/views/request/details.rhtml:6 msgid "" @@ -3450,8 +3427,8 @@ msgstr "Se encontró un tipo de resultado inesperado " msgid "" "Unfortunately we don't know the FOI\n" "email address for that authority, so we can't validate this.\n" -"Please <a href=\"%s\">contact us</a> to sort it out." -msgstr "Desgraciadamente no tenemos la dirección\nde correo para este organismo, así que no podemos validarlo.\nPor favor <a href=\"%s\">contáctenos</a> para arreglarlo." +"Please <a href=\"{{url}}\">contact us</a> to sort it out." +msgstr "Desgraciadamente no tenemos la dirección\nde correo para este organismo, así que no podemos validarlo.\nPor favor <a href=\"{{url}}\">contáctenos</a> para arreglarlo." #: app/views/request/new_bad_contact.rhtml:5 msgid "" @@ -3699,9 +3676,9 @@ msgstr "Cuando reciba la respuesta en papel, por favor ayude\n a que #: app/views/request/new_please_describe.rhtml:16 msgid "" -"When you're done, <strong>come back here</strong>, <a href=\"%s\">reload " +"When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload " "this page</a> and file your new request." -msgstr "Cuando esté listo, <strong>vuelva aquí</strong>, <a href=\"%s\">recargue esta página</a> y cree una nueva solicitud." +msgstr "Cuando esté listo, <strong>vuelva aquí</strong>, <a href=\"{{url}}\">recargue esta página</a> y cree una nueva solicitud." #: app/views/request/show_response.rhtml:13 msgid "Which of these is happening?" @@ -3840,8 +3817,8 @@ msgstr "Puede <strong>adjuntar ficheros</strong>. Si quiere adjuntar un fichero\ msgid "" "You may be able to find\n" " one on their website, or by phoning them up and asking. If you manage\n" -" to find one, then please <a href=\"%s\">send it to us</a>." -msgstr "Puede que encuentres una\n en su página web, o preguntando por teléfono. Si la consigues\n por favor <a href=\"%s\">envíanosla</a>." +" to find one, then please <a href=\"{{url}}\">send it to us</a>." +msgstr "Puede que encuentres una\n en su página web, o preguntando por teléfono. Si la consigues\n por favor <a href=\"{{url}}\">envíanosla</a>." #: app/views/request/new_bad_contact.rhtml:6 msgid "" @@ -3914,25 +3891,20 @@ msgid "You've now cleared your profile photo" msgstr "Has borrado la foto de tu perfil" #: app/views/user/show.rhtml:149 -msgid "Your %d Freedom of Information request" -msgid_plural "Your %d Freedom of Information requests" -msgstr[0] "Tu %d solicitud de información" -msgstr[1] "Tus %d solicitudes de información" +msgid "Your {{count}} Freedom of Information request" +msgid_plural "Your {{count}} Freedom of Information requests" +msgstr[0] "Tu {{count}} solicitud de información" +msgstr[1] "Tus {{count}} solicitudes de información" #: app/views/user/show.rhtml:179 -msgid "Your %d annotation" -msgid_plural "Your %d annotations" -msgstr[0] "Tu %d comentario" -msgstr[1] "Tus %d comentarios" +msgid "Your {{count}} annotation" +msgid_plural "Your {{count}} annotations" +msgstr[0] "Tu {{count}} comentario" +msgstr[1] "Tus {{count}} comentarios" #: app/views/user/_signup.rhtml:22 -msgid "" -"Your <strong>name will appear publicly</strong> \n" -" (<a href=\"%s\">why?</a>)\n" -" on this website and in search engines. If you\n" -" are thinking of using a pseudonym, please \n" -" <a href=\"%s\">read this first</a>." -msgstr "<strong>Tu nombre aparecerá públicamente</strong> \n (<a href=\"%s\">¿por qué?</a>)\n en esta web y en motores de búsqueda. Si estás\n pensando en utilizar un seudónimo, por favor \n <a href=\"%s\">lee esto primero</a>." +msgid "Your <strong>name will appear publicly</strong> \\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please \\n <a href=\"{{help_url}}\">read this first</a>." +msgstr "<strong>Tu nombre aparecerá públicamente</strong> \n (<a href=\"{{why_url}}\">¿por qué?</a>)\n en esta web y en motores de búsqueda. Si estás\n pensando en utilizar un seudónimo, por favor \n <a href=\"{{help_url}}\">lee esto primero</a>." #: app/views/user/show.rhtml:172 msgid "Your annotations" @@ -3956,9 +3928,9 @@ msgstr "Tus suscripciones de correo" #: app/controllers/request_controller.rb:598 msgid "" "Your follow up has not been sent because this request has been stopped to " -"prevent spam. Please <a href=\"%s\">contact us</a> if you really want to " +"prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to " "send a follow up message." -msgstr "Tu respuesta no ha sido enviada porque esta solicitud ha sido bloqueada para evitar spam. Por favor <a href=\"%s\">contáctanos</a> si realmente quieres enviar una respuesta." +msgstr "Tu respuesta no ha sido enviada porque esta solicitud ha sido bloqueada para evitar spam. Por favor <a href=\"{{url}}\">contáctanos</a> si realmente quieres enviar una respuesta." #: app/controllers/request_controller.rb:626 msgid "Your follow up message has been sent on its way." @@ -3990,8 +3962,8 @@ msgstr "Tu nombre y su comentario aparecerán en los <strong>motores de búsqued #: app/views/request/preview.rhtml:8 msgid "" "Your name, request and any responses will appear in <strong>search engines</strong>\n" -" (<a href=\"%s\">details</a>)." -msgstr "Tu nombre, tu solicitud y cualquier respuesta aparecerán en los <strong>motores de búsqueda</strong>\n (<a href=\"%s\">detalles</a>)." +" (<a href=\"{{url}}\">details</a>)." +msgstr "Tu nombre, tu solicitud y cualquier respuesta aparecerán en los <strong>motores de búsqueda</strong>\n (<a href=\"{{url}}\">detalles</a>)." #: app/views/user/_signup.rhtml:18 msgid "Your name:" @@ -4028,8 +4000,8 @@ msgstr "Tu solicitud:" #: app/views/request/upload_response.rhtml:8 msgid "" "Your response will <strong>appear on the Internet</strong>, <a " -"href=\"%s\">read why</a> and answers to other questions." -msgstr "Tu respuesta <strong>aparecerá en Internet</strong>, <a href=\"%s\">lee por qué</a> y respuestas a otras preguntas." +"href=\"{{url}}\">read why</a> and answers to other questions." +msgstr "Tu respuesta <strong>aparecerá en Internet</strong>, <a href=\"{{url}}\">lee por qué</a> y respuestas a otras preguntas." #: app/views/comment/new.rhtml:63 msgid "" @@ -4276,8 +4248,8 @@ msgid "" "no longer exists. If you are trying to make\n" " From the request page, try replying to a particular message, rather than sending\n" " a general followup. If you need to make a general followup, and know\n" -" an email which will go to the right place, please <a href=\"%s\">send it to us</a>." -msgstr "ya no existe. \nDesde la página de la solicitud, intenta responder a un mensaje en concreto, en vez de\n responder a la solicitud en general. Si necesitas hacerlo y tienes una dirección de\n correo válida, por favor <a href=\"%s\">mándanosla</a>." +" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>." +msgstr "ya no existe. \nDesde la página de la solicitud, intenta responder a un mensaje en concreto, en vez de\n responder a la solicitud en general. Si necesitas hacerlo y tienes una dirección de\n correo válida, por favor <a href=\"{{url}}\">mándanosla</a>." #: app/views/request/show.rhtml:72 msgid "normally" diff --git a/spec/fixtures/outgoing_messages.yml b/spec/fixtures/outgoing_messages.yml index 55df8473e..92de076c4 100644 --- a/spec/fixtures/outgoing_messages.yml +++ b/spec/fixtures/outgoing_messages.yml @@ -1,3 +1,21 @@ +# == Schema Information +# +# Table name: outgoing_messages +# +# id :integer not null, primary key +# info_request_id :integer not null +# body :text not null +# status :string(255) not null +# message_type :string(255) not null +# created_at :datetime not null +# updated_at :datetime not null +# last_sent_at :datetime +# incoming_message_followup_id :integer +# what_doing :string(255) not null +# prominence :string(255) default("normal"), not null +# prominence_reason :text +# + useless_outgoing_message: id: 1 info_request_id: 101 @@ -108,3 +126,14 @@ anonymous_external_outgoing_message: updated_at: 2009-01-12 01:56:58.586598 what_doing: normal_sort +other_outgoing_message: + id: 10 + info_request_id: 111 + message_type: initial_request + status: sent + body: "Just another request" + last_sent_at: <%= Time.now %> + created_at: 2009-01-12 01:56:58.586598 + updated_at: 2009-01-12 01:56:58.586598 + what_doing: normal_sort + diff --git a/spec/fixtures/public_bodies.yml b/spec/fixtures/public_bodies.yml index 615c4bcb6..d0eb572b3 100644 --- a/spec/fixtures/public_bodies.yml +++ b/spec/fixtures/public_bodies.yml @@ -1,3 +1,30 @@ +# == Schema Information +# +# Table name: public_bodies +# +# id :integer not null, primary key +# name :text not null +# short_name :text not null +# request_email :text not null +# version :integer not null +# last_edit_editor :string(255) not null +# last_edit_comment :text not null +# created_at :datetime not null +# updated_at :datetime not null +# url_name :text not null +# home_page :text default(""), not null +# notes :text default(""), not null +# first_letter :string(255) not null +# publication_scheme :text default(""), not null +# api_key :string(255) not null +# info_requests_count :integer default(0), not null +# disclosure_log :text default(""), not null +# info_requests_successful_count :integer +# info_requests_not_held_count :integer +# info_requests_overdue_count :integer +# info_requests_visible_classified_count :integer +# + geraldine_public_body: name: The Geraldine Quango first_letter: T @@ -12,6 +39,10 @@ geraldine_public_body: created_at: 2007-10-24 10:51:01.161639 api_key: 1 info_requests_count: 4 + info_requests_visible_classified_count: 4 + info_requests_successful_count: 0 + info_requests_not_held_count: 0 + info_requests_overdue_count: 3 humpadink_public_body: name: "Department for Humpadinking" first_letter: D @@ -27,6 +58,10 @@ humpadink_public_body: notes: An albatross told me!!! api_key: 2 info_requests_count: 2 + info_requests_visible_classified_count: 2 + info_requests_successful_count: 1 + info_requests_not_held_count: 0 + info_requests_overdue_count: 1 forlorn_public_body: name: "Department of Loneliness" first_letter: D @@ -42,6 +77,10 @@ forlorn_public_body: notes: A very lonely public body that no one has corresponded with api_key: 3 info_requests_count: 0 + info_requests_visible_classified_count: 0 + info_requests_successful_count: 0 + info_requests_not_held_count: 0 + info_requests_overdue_count: 0 silly_walks_public_body: id: 5 version: 1 @@ -57,6 +96,10 @@ silly_walks_public_body: notes: You know the one. api_key: 4 info_requests_count: 2 + info_requests_visible_classified_count: 2 + info_requests_successful_count: 2 + info_requests_not_held_count: 0 + info_requests_overdue_count: 0 sensible_walks_public_body: id: 6 version: 1 @@ -72,3 +115,45 @@ sensible_walks_public_body: created_at: 2008-10-25 10:51:01.161639 api_key: 5 info_requests_count: 1 + info_requests_visible_classified_count: 1 + info_requests_successful_count: 1 + info_requests_not_held_count: 0 + info_requests_overdue_count: 0 +other_public_body: + id: 7 + version: 1 + name: 'Another Public Body' + first_letter: A + request_email: other@localhost + short_name: Another Public Body + url_name: another_public_body + notes: More notes + updated_at: 2008-10-25 10:51:01.161639 + last_edit_comment: Another edit + last_edit_editor: louise + created_at: 2008-10-25 10:51:01.161639 + api_key: 6 + info_requests_count: 0 + info_requests_visible_classified_count: 0 + info_requests_successful_count: 0 + info_requests_not_held_count: 0 + info_requests_overdue_count: 0 +accented_public_body: + id: 8 + version: 1 + name: 'Åčçèñtéd Authority' + first_letter: Å + request_email: accented@localhost + short_name: 'Åčçèñtéd Authority' + url_name: accented_authority + notes: This is to test unicode handling in body names + updated_at: 2008-10-25 10:51:01.161639 + last_edit_comment: Another edit + last_edit_editor: louise + created_at: 2008-10-25 10:51:01.161639 + api_key: 7 + info_requests_count: 0 + info_requests_visible_classified_count: 0 + info_requests_successful_count: 0 + info_requests_not_held_count: 0 + info_requests_overdue_count: 0 diff --git a/spec/fixtures/public_body_translations.yml b/spec/fixtures/public_body_translations.yml index 24b14c470..225bd74e2 100644 --- a/spec/fixtures/public_body_translations.yml +++ b/spec/fixtures/public_body_translations.yml @@ -10,6 +10,8 @@ geraldine_es_public_body_translation: notes: "" publication_scheme: "" disclosure_log: "" + created_at: 2007-10-24 10:51:01.161639 + updated_at: 2007-10-24 10:51:01.161639 geraldine_en_public_body_translation: name: Geraldine Quango @@ -23,6 +25,8 @@ geraldine_en_public_body_translation: notes: "" publication_scheme: "" disclosure_log: "" + created_at: 2007-10-24 10:51:01.161639 + updated_at: 2007-10-24 10:51:01.161639 humpadink_es_public_body_translation: name: "El Department for Humpadinking" @@ -36,6 +40,8 @@ humpadink_es_public_body_translation: notes: Baguette publication_scheme: "" disclosure_log: "" + created_at: 2007-10-24 10:51:01.161639 + updated_at: 2007-10-24 10:51:01.161639 humpadink_en_public_body_translation: name: "Department for Humpadinking" @@ -49,6 +55,8 @@ humpadink_en_public_body_translation: notes: An albatross told me!!! publication_scheme: "" disclosure_log: "" + created_at: 2007-10-24 10:51:01.161639 + updated_at: 2007-10-24 10:51:01.161639 forlorn_en_public_body_translation: name: "Department of Loneliness" @@ -62,6 +70,8 @@ forlorn_en_public_body_translation: notes: A very lonely public body that no one has corresponded with publication_scheme: "" disclosure_log: "" + created_at: 2007-10-24 10:51:01.161639 + updated_at: 2007-10-24 10:51:01.161639 silly_walks_en_public_body_translation: id: 6 @@ -75,6 +85,8 @@ silly_walks_en_public_body_translation: notes: You know the one. publication_scheme: "" disclosure_log: "" + created_at: 2007-10-24 10:51:01.161639 + updated_at: 2007-10-24 10:51:01.161639 sensible_walks_en_public_body_translation: id: 7 @@ -88,3 +100,50 @@ sensible_walks_en_public_body_translation: notes: I bet you’ve never heard of it. publication_scheme: "" disclosure_log: "" + created_at: 2008-10-25 10:51:01.161639 + updated_at: 2008-10-25 10:51:01.161639 + +other_public_body_translation: + id: 8 + public_body_id: 7 + locale: en + name: "Another Public Body" + first_letter: A + request_email: other@localhost + short_name: Another Public Body + url_name: another_public_body + notes: More notes + publication_scheme: "" + disclosure_log: "" + created_at: 2008-10-25 10:51:01.161639 + updated_at: 2008-10-25 10:51:01.161639 + +humpadink_he_IL_public_body_translation: + name: "Hebrew Humpadinking" + first_letter: D + request_email: humpadink-requests@localhost + id: 9 + public_body_id: 3 + short_name: DfH + url_name: dfh + locale: he_IL + notes: An albatross told me!!! + publication_scheme: "" + disclosure_log: "" + created_at: 2007-10-24 10:51:01.161639 + updated_at: 2007-10-24 10:51:01.161639 + +accented_public_body_translation: + id: 10 + public_body_id: 8 + locale: cs + name: "Åčçèñtéd Authority" + first_letter: 'Å' + request_email: accented@localhost + short_name: "Åčçèñtéd Authority" + url_name: accented_authority + notes: This is to test unicode handling in body names + publication_scheme: "" + disclosure_log: "" + created_at: 2008-10-25 10:51:01.161639 + updated_at: 2008-10-25 10:51:01.161639 diff --git a/spec/fixtures/raw_emails.yml b/spec/fixtures/raw_emails.yml index ad2bc0a63..efdadde7b 100644 --- a/spec/fixtures/raw_emails.yml +++ b/spec/fixtures/raw_emails.yml @@ -1,3 +1,10 @@ +# == Schema Information +# +# Table name: raw_emails +# +# id :integer not null, primary key +# + # The actual email messages are in fixtures/files/raw_emails # # Note that the words "money" and "bob" are used in some tests diff --git a/spec/fixtures/theme_views/core/application_mailer/core_only.rhtml b/spec/fixtures/theme_views/core/application_mailer/core_only.html.erb index 53b7798ec..53b7798ec 100644 --- a/spec/fixtures/theme_views/core/application_mailer/core_only.rhtml +++ b/spec/fixtures/theme_views/core/application_mailer/core_only.html.erb diff --git a/spec/fixtures/theme_views/core/application_mailer/multipart_core_only.rhtml b/spec/fixtures/theme_views/core/application_mailer/multipart_core_only.html.erb index 646a349f8..646a349f8 100644 --- a/spec/fixtures/theme_views/core/application_mailer/multipart_core_only.rhtml +++ b/spec/fixtures/theme_views/core/application_mailer/multipart_core_only.html.erb diff --git a/spec/fixtures/theme_views/core/application_mailer/simple.rhtml b/spec/fixtures/theme_views/core/application_mailer/simple.html.erb index a3937c940..a3937c940 100644 --- a/spec/fixtures/theme_views/core/application_mailer/simple.rhtml +++ b/spec/fixtures/theme_views/core/application_mailer/simple.html.erb diff --git a/spec/fixtures/theme_views/theme_one/application_mailer/multipart_theme_only.rhtml b/spec/fixtures/theme_views/theme_one/application_mailer/multipart_theme_only.html.erb index d6423fbb4..d6423fbb4 100644 --- a/spec/fixtures/theme_views/theme_one/application_mailer/multipart_theme_only.rhtml +++ b/spec/fixtures/theme_views/theme_one/application_mailer/multipart_theme_only.html.erb diff --git a/spec/fixtures/theme_views/theme_one/application_mailer/simple.rhtml b/spec/fixtures/theme_views/theme_one/application_mailer/simple.html.erb index ad43e0c87..ad43e0c87 100644 --- a/spec/fixtures/theme_views/theme_one/application_mailer/simple.rhtml +++ b/spec/fixtures/theme_views/theme_one/application_mailer/simple.html.erb diff --git a/spec/fixtures/theme_views/theme_one/application_mailer/theme_only.rhtml b/spec/fixtures/theme_views/theme_one/application_mailer/theme_only.html.erb index 865445815..865445815 100644 --- a/spec/fixtures/theme_views/theme_one/application_mailer/theme_only.rhtml +++ b/spec/fixtures/theme_views/theme_one/application_mailer/theme_only.html.erb diff --git a/spec/fixtures/theme_views/theme_one/help/contact.es.html.erb b/spec/fixtures/theme_views/theme_one/help/contact.es.html.erb new file mode 100644 index 000000000..a294c8aa1 --- /dev/null +++ b/spec/fixtures/theme_views/theme_one/help/contact.es.html.erb @@ -0,0 +1 @@ +contáctenos theme one diff --git a/spec/fixtures/theme_views/theme_one/help/contact.html.erb b/spec/fixtures/theme_views/theme_one/help/contact.html.erb new file mode 100644 index 000000000..428c7368d --- /dev/null +++ b/spec/fixtures/theme_views/theme_one/help/contact.html.erb @@ -0,0 +1 @@ +Contact us diff --git a/spec/fixtures/track_things.yml b/spec/fixtures/track_things.yml index 1c4b323fd..61f1ed532 100644 --- a/spec/fixtures/track_things.yml +++ b/spec/fixtures/track_things.yml @@ -1,3 +1,19 @@ +# == Schema Information +# +# Table name: track_things +# +# id :integer not null, primary key +# tracking_user_id :integer not null +# track_query :string(255) not null +# info_request_id :integer +# tracked_user_id :integer +# public_body_id :integer +# track_medium :string(255) not null +# track_type :string(255) default("internal_error"), not null +# created_at :datetime +# updated_at :datetime +# + track_fancy_dog_request: id: "10" track_query: request:why_do_you_have_such_a_fancy_dog diff --git a/spec/fixtures/track_things_sent_emails.yml b/spec/fixtures/track_things_sent_emails.yml deleted file mode 100644 index e69de29bb..000000000 --- a/spec/fixtures/track_things_sent_emails.yml +++ /dev/null diff --git a/spec/fixtures/users.yml b/spec/fixtures/users.yml index d6391c5e8..9eb91ee9c 100644 --- a/spec/fixtures/users.yml +++ b/spec/fixtures/users.yml @@ -1,4 +1,28 @@ -bob_smith_user: +# == Schema Information +# +# Table name: users +# +# id :integer not null, primary key +# email :string(255) not null +# name :string(255) not null +# hashed_password :string(255) not null +# salt :string(255) not null +# created_at :datetime not null +# updated_at :datetime not null +# email_confirmed :boolean default(FALSE), not null +# url_name :text not null +# last_daily_track_email :datetime default(2000-01-01 00:00:00 UTC) +# admin_level :string(255) default("none"), not null +# ban_text :text default(""), not null +# about_me :text default(""), not null +# locale :string(255) +# email_bounced_at :datetime +# email_bounce_message :text default(""), not null +# no_limit :boolean default(FALSE), not null +# receive_email_alerts :boolean default(TRUE), not null +# + +bob_smith_user: id: "1" name: Bob Smith url_name: bob_smith @@ -13,7 +37,7 @@ bob_smith_user: locale: 'en' about_me: 'I like making requests about fancy dogs and naughty chickens and stuff.' receive_email_alerts: true -silly_name_user: +silly_name_user: id: "2" name: "Silly <em>Name</em>" url_name: silly_emnameem @@ -28,7 +52,7 @@ silly_name_user: locale: 'en' about_me: '' receive_email_alerts: true -admin_user: +admin_user: id: "3" name: Joe Admin url_name: joe_admin @@ -43,7 +67,7 @@ admin_user: locale: '' about_me: '' receive_email_alerts: true -unconfirmed_user: +unconfirmed_user: id: "4" name: "Unconfirmed" url_name: unconfirmed @@ -71,3 +95,17 @@ robin_user: ban_text: '' about_me: 'I am the best' receive_email_alerts: true +another_user: + id: 6 + name: Another User + url_name: another_user + email: another@localhost + salt: "-6116981980.392287733335677" + hashed_password: 6b7cd45a5f35fd83febc0452a799530398bfb6e8 # jonespassword + updated_at: 2012-01-01 10:39:15.491593 + created_at: 2012-01-01 10:39:15.491593 + email_confirmed: true + admin_level: 'none' + ban_text: '' + about_me: 'Just another user' + receive_email_alerts: true |