Index: chrome/browser/autofill/autofill_regex_constants.cc.utf8 |
diff --git a/chrome/browser/autofill/autofill_regex_constants.cc.utf8 b/chrome/browser/autofill/autofill_regex_constants.cc.utf8 |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cba240a135dfc96ae3ac944a4a033ae0abd592a7 |
--- /dev/null |
+++ b/chrome/browser/autofill/autofill_regex_constants.cc.utf8 |
@@ -0,0 +1,297 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// This file contains UTF8 strings that we want as char arrays. To avoid |
+// different compilers, we use a script to convert the UTF8 strings into |
+// numeric literals (\x##). |
+ |
+#include "chrome/browser/autofill/autofill_regex_constants.h" |
+ |
+namespace autofill { |
+ |
+///////////////////////////////////////////////////////////////////////////// |
+// address_field.cc |
+///////////////////////////////////////////////////////////////////////////// |
+const char kAttentionIgnoredRe[] = "attention|attn"; |
+const char kRegionIgnoredRe[] = |
+ "province|region|other" |
+ "|provincia" // es |
+ "|bairro|suburb"; // pt-BR, pt-PT |
+const char kCompanyRe[] = |
+ "company|business|organization|organisation" |
+ "|firma|firmenname" // de-DE |
+ "|empresa" // es |
+ "|societe|société" // fr-FR |
+ "|ragione.?sociale" // it-IT |
+ "|会社" // ja-JP |
+ "|название.?компании" // ru |
+ "|单位|公司" // zh-CN |
+ "|회사|직장"; // ko-KR |
+const char kAddressLine1Re[] = |
+ "address.*line|address1|addr1|street" |
+ "|strasse|straße|hausnummer|housenumber" // de-DE |
+ "|house.?name" // en-GB |
+ "|direccion|dirección" // es |
+ "|adresse" // fr-FR |
+ "|indirizzo" // it-IT |
+ "|住所1" // ja-JP |
+ "|morada|endereço" // pt-BR, pt-PT |
+ "|Адрес" // ru |
+ "|地址" // zh-CN |
+ "|주소.?1"; // ko-KR |
+const char kAddressLine1LabelRe[] = |
+ "address" |
+ "|adresse" // fr-FR |
+ "|indirizzo" // it-IT |
+ "|住所" // ja-JP |
+ "|地址" // zh-CN |
+ "|주소"; // ko-KR |
+const char kAddressLine2Re[] = |
+ "address.*line2|address2|addr2|street|suite|unit" |
+ "|adresszusatz|ergänzende.?angaben" // de-DE |
+ "|direccion2|colonia|adicional" // es |
+ "|addresssuppl|complementnom|appartement" // fr-FR |
+ "|indirizzo2" // it-IT |
+ "|住所2" // ja-JP |
+ "|complemento|addrcomplement" // pt-BR, pt-PT |
+ "|Улица" // ru |
+ "|地址2" // zh-CN |
+ "|주소.?2"; // ko-KR |
+const char kAddressLine2LabelRe[] = |
+ "address" |
+ "|adresse" // fr-FR |
+ "|indirizzo" // it-IT |
+ "|地址" // zh-CN |
+ "|주소"; // ko-KR |
+const char kAddressLine3Re[] = |
+ "address.*line3|address3|addr3|street|line3" |
+ "|municipio" // es |
+ "|batiment|residence" // fr-FR |
+ "|indirizzo3"; // it-IT |
+const char kCountryRe[] = |
+ "country|countries|location" |
+ "|país|pais" // es |
+ "|国" // ja-JP |
+ "|国家" // zh-CN |
+ "|국가|나라"; // ko-KR |
+const char kZipCodeRe[] = |
+ "zip|postal|post.*code|pcode|^1z$" |
+ "|postleitzahl" // de-DE |
+ "|\\bcp\\b" // es |
+ "|\\bcdp\\b" // fr-FR |
+ "|\\bcap\\b" // it-IT |
+ "|郵便番号" // ja-JP |
+ "|codigo|codpos|\\bcep\\b" // pt-BR, pt-PT |
+ "|Почтовый.?Индекс" // ru |
+ "|邮政编码|邮编" // zh-CN |
+ "|郵遞區號" // zh-TW |
+ "|우편.?번호"; // ko-KR |
+const char kZip4Re[] = |
+ "zip|^-$|post2" |
+ "|codpos2"; // pt-BR, pt-PT |
+const char kCityRe[] = |
+ "city|town" |
+ "|\\bort\\b|stadt" // de-DE |
+ "|suburb" // en-AU |
+ "|ciudad|provincia|localidad|poblacion" // es |
+ "|ville|commune" // fr-FR |
+ "|localita" // it-IT |
+ "|市区町村" // ja-JP |
+ "|cidade" // pt-BR, pt-PT |
+ "|Город" // ru |
+ "|市" // zh-CN |
+ "|分區" // zh-TW |
+ "|^시[^도·・]|시[·・]?군[·・]?구"; // ko-KR |
+const char kStateRe[] = |
+ "(?<!united )state|county|region|province" |
+ "|land" // de-DE |
+ "|county|principality" // en-UK |
+ "|都道府県" // ja-JP |
+ "|estado|provincia" // pt-BR, pt-PT |
+ "|область" // ru |
+ "|省" // zh-CN |
+ "|地區" // zh-TW |
+ "|^시[·・]?도"; // ko-KR |
+const char kAddressTypeSameAsRe[] = "same as"; |
+const char kAddressTypeUseMyRe[] = "use my"; |
+const char kBillingDesignatorRe[] = "bill"; |
+const char kShippingDesignatorRe[] = "ship"; |
+ |
+///////////////////////////////////////////////////////////////////////////// |
+// credit_card_field.cc |
+///////////////////////////////////////////////////////////////////////////// |
+const char kNameOnCardRe[] = |
+ "card.?holder|name.?on.?card|ccname|ccfullname|owner" |
+ "|karteninhaber" // de-DE |
+ "|nombre.*tarjeta" // es |
+ "|nom.*carte" // fr-FR |
+ "|nome.*cart" // it-IT |
+ "|名前" // ja-JP |
+ "|Имя.*карты" // ru |
+ "|信用卡开户名|开户名|持卡人姓名" // zh-CN |
+ "|持卡人姓名"; // zh-TW |
+const char kNameOnCardContextualRe[] = |
+ "name"; |
+const char kCardNumberRe[] = |
+ "card.?number|card.?#|card.?no|ccnum|acctnum" |
+ "|nummer" // de-DE |
+ "|credito|numero|número" // es |
+ "|numéro" // fr-FR |
+ "|カード番号" // ja-JP |
+ "|Номер.*карты" // ru |
+ "|信用卡号|信用卡号码" // zh-CN |
+ "|信用卡卡號" // zh-TW |
+ "|카드"; // ko-KR |
+const char kCardCvcRe[] = |
+ "verification|card identification|security code|cvn|cvv|cvc|csc"; |
+ |
+// "Expiration date" is the most common label here, but some pages have |
+// "Expires", "exp. date" or "exp. month" and "exp. year". We also look |
+// for the field names ccmonth and ccyear, which appear on at least 4 of |
+// our test pages. |
+ |
+// On at least one page (The China Shop2.html) we find only the labels |
+// "month" and "year". So for now we match these words directly; we'll |
+// see if this turns out to be too general. |
+ |
+// Toolbar Bug 51451: indeed, simply matching "month" is too general for |
+// https://rps.fidelity.com/ftgw/rps/RtlCust/CreatePIN/Init. |
+// Instead, we match only words beginning with "month". |
+const char kExpirationMonthRe[] = |
+ "expir|exp.*mo|exp.*date|ccmonth" |
+ "|gueltig|gültig|monat" // de-DE |
+ "|fecha" // es |
+ "|date.*exp" // fr-FR |
+ "|scadenza" // it-IT |
+ "|有効期限" // ja-JP |
+ "|validade" // pt-BR, pt-PT |
+ "|Срок действия карты" // ru |
+ "|月"; // zh-CN |
+const char kExpirationYearRe[] = |
+ "exp|^/|year" |
+ "|ablaufdatum|gueltig|gültig|yahr" // de-DE |
+ "|fecha" // es |
+ "|scadenza" // it-IT |
+ "|有効期限" // ja-JP |
+ "|validade" // pt-BR, pt-PT |
+ "|Срок действия карты" // ru |
+ "|年|有效期"; // zh-CN |
+ |
+// This regex is a little bit nasty, but it is simply requiring exactly two |
+// adjacent y's. |
+const char kExpirationDate2DigitYearRe[] = |
+ "exp.*date.*[^y]yy([^y]|$)"; |
+const char kExpirationDateRe[] = |
+ "expir|exp.*date" |
+ "|gueltig|gültig" // de-DE |
+ "|fecha" // es |
+ "|date.*exp" // fr-FR |
+ "|scadenza" // it-IT |
+ "|有効期限" // ja-JP |
+ "|validade" // pt-BR, pt-PT |
+ "|Срок действия карты"; // ru |
+const char kCardIgnoredRe[] = |
+ "^card"; |
+ |
+ |
+///////////////////////////////////////////////////////////////////////////// |
+// email_field.cc |
+///////////////////////////////////////////////////////////////////////////// |
+const char kEmailRe[] = |
+ "e.?mail" |
+ "|メールアドレス" // ja-JP |
+ "|Электронной.?Почты" // ru |
+ "|邮件|邮箱" // zh-CN |
+ "|電郵地址" // zh-TW |
+ "|(이메일|전자.?우편|[Ee]-?mail)(.?주소)?"; // ko-KR |
+ |
+ |
+///////////////////////////////////////////////////////////////////////////// |
+// name_field.cc |
+///////////////////////////////////////////////////////////////////////////// |
+const char kNameIgnoredRe[] = |
+ "user.?name|user.?id|nickname|maiden name|title|prefix|suffix" |
+ "|vollständiger.?name" // de-DE |
+ "|用户名" // zh-CN |
+ "|(사용자.?)?아이디|사용자.?ID"; // ko-KR |
+const char kNameRe[] = |
+ "^name|full.?name|your.?name|customer.?name|firstandlastname|bill.?name" |
+ "|ship.?name" |
+ "|nombre.*y.*apellidos" // es |
+ "|^nom" // fr-FR |
+ "|お名前|氏名" // ja-JP |
+ "|^nome" // pt-BR, pt-PT |
+ "|姓名" // zh-CN |
+ "|성명"; // ko-KR |
+const char kNameSpecificRe[] = |
+ "^name" |
+ "|^nom" // fr-FR |
+ "|^nome"; // pt-BR, pt-PT |
+const char kFirstNameRe[] = |
+ "first.*name|initials|fname|first$" |
+ "|vorname" // de-DE |
+ "|nombre" // es |
+ "|forename|prénom|prenom" // fr-FR |
+ "|名" // ja-JP |
+ "|nome" // pt-BR, pt-PT |
+ "|Имя" // ru |
+ "|이름"; // ko-KR |
+const char kMiddleInitialRe[] = "middle.*initial|m\\.i\\.|mi$|\\bmi\\b"; |
+const char kMiddleNameRe[] = |
+ "middle.*name|mname|middle$" |
+ "|apellido.?materno|lastlastname"; // es |
+const char kLastNameRe[] = |
+ "last.*name|lname|surname|last$|secondname" |
+ "|nachname" // de-DE |
+ "|apellido" // es |
+ "|famille|^nom" // fr-FR |
+ "|cognome" // it-IT |
+ "|姓" // ja-JP |
+ "|morada|apelidos|surename|sobrenome" // pt-BR, pt-PT |
+ "|Фамилия" // ru |
+ "|성[^명]?"; // ko-KR |
+ |
+///////////////////////////////////////////////////////////////////////////// |
+// phone_field.cc |
+///////////////////////////////////////////////////////////////////////////// |
+const char kPhoneRe[] = |
+ "phone|mobile" |
+ "|telefonnummer" // de-DE |
+ "|telefono|teléfono" // es |
+ "|telfixe" // fr-FR |
+ "|電話" // ja-JP |
+ "|telefone|telemovel" // pt-BR, pt-PT |
+ "|телефон" // ru |
+ "|电话" // zh-CN |
+ "|(전화|핸드폰|휴대폰|휴대전화)(.?번호)?"; // ko-KR |
+const char kCountryCodeRe[] = |
+ "country.*code|ccode|_cc"; |
+const char kAreaCodeNotextRe[] = |
+ "^\\($"; |
+const char kAreaCodeRe[] = |
+ "area.*code|acode|area" |
+ "|지역.?번호"; // ko-KR |
+const char kFaxRe[] = |
+ "fax" |
+ "|télécopie|telecopie" // fr-FR |
+ "|ファックス" // ja-JP |
+ "|факс" // ru |
+ "|传真" // zh-CN |
+ "|傳真" // zh-TW |
+ "|팩스(.?번호)?"; // ko-KR |
+const char kPhonePrefixSeparatorRe[] = |
+ "^-$|^\\)$"; |
+const char kPhoneSuffixSeparatorRe[] = |
+ "^-$"; |
+const char kPhonePrefixRe[] = |
+ "prefix|exchange" |
+ "|preselection" // fr-FR |
+ "|ddd"; // pt-BR, pt-PT |
+const char kPhoneSuffixRe[] = |
+ "suffix"; |
+const char kPhoneExtensionRe[] = |
+ "\\bext|ext\\b|extension" |
+ "|ramal"; // pt-BR, pt-PT |
+ |
+} // namespace autofill |