Merge pull request #1 from zxing/master

Synch this repo with zxing
This commit is contained in:
slepmog 2015-03-01 21:44:08 +03:00
commit deb288bb94
166 changed files with 2002 additions and 1439 deletions

13
.gitattributes vendored Normal file
View file

@ -0,0 +1,13 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.java text
# Declare files that will always have LF line endings on checkout.
*.txt text eol=lf
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

View file

@ -1,8 +1,12 @@
language: java
before_install: sudo pip install codecov
script: mvn -Pjacoco test
jdk:
- oraclejdk7
- openjdk7
- oraclejdk8
cache:
directories:
- $HOME/.m2
git:
depth: 3
after_success: codecov

13
AUTHORS
View file

@ -37,6 +37,8 @@ Emanuele Aina
Eric Kobrin (Velocitude)
evansepdx
Erik Barbara
Facundo Farias
fakhri626
fics.danmark
Francois B. (Google)
Frank Yellin
@ -50,8 +52,10 @@ hosigumayuugi
hypest (Barcorama project)
Ian W. Davis
Isaac Potoczny-Jones
Ivan Poliakov
Jacob Haynes (Google)
Jeff Breidenbach (Google)
jjYBdx4IL
Joan Montané (Softcatalà.cat)
John Connolly (Bug Labs)
Jonas Petersson (Prisjakt)
@ -72,11 +76,13 @@ Luka Finžgar
Malte Starostik
Manuel Kasten
Marcelo
Markus Helm
Mateusz Jędrasik
Matthew Schulkind (Google)
Matt York (LifeMarks)
MicheleMas
mike32767
mikej06
mikej06 / micjahn
Mike Kicinski
Mohamad Fairol
Morgan Courbet
@ -102,6 +108,7 @@ Sean Owen (Google)
Shiyuan Guo / 郭世元
ShumovichY
Simon Flannery (Ericsson)
slepmog
Stephen Furlani
Steven Parkes
stoty74
@ -110,10 +117,14 @@ Sven Klinkhamer
taku0
techinstantdx
tgibson11
Thanapon Namjittrong
Thomas Gerbet
Thomas Weißschuh
Tim Gernat
v.anestis
Vince Francis (LifeMarks)
Wolfgang Jung
Yahoe001
Yakov Okshtein (Google)
Yao Wei
Younes CHTIOUI

17
CHANGES
View file

@ -335,4 +335,19 @@
- iphone/, cpp/, objc/, and glass-mirror/ are retired
- Java 7 now used for all Java-based modules
- Project moved to github.com/zxing/zxing
- Many small bug fixes and improvements
- Many small bug fixes and improvements
3.0.1 (18 April 2014)
- Several small bug fixes
3.1.0 (22 May 2014)
- Retire actionscript port
- Small bug fixes
3.2.0 (15 Feb 2015)
- Several bug fixes, especially for Data Matrix and PDF417 parsing
- Retired jruby binding
- Barcode Scanner can now disable history

36
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,36 @@
## Contributing
The project is in maintenance mode, meaning, changes are driven by contributed patches.
There is otherwise no active development or roadmap for this project. It is "DIY".
Only proposed changes in the form of a pull request are likely to be acted on, but,
these will be acted on promptly.
### Questions
Questions should be asked on the mailing list:
https://groups.google.com/forum/#!forum/zxing
### Feature Requests
Feature requests are generally not accepted and may be closed if nobody acts on them.
Feature requests with a pull request may be accepted. When in doubt, discuss on the
mailing list first.
### Bug Reports
Bug reports must have enough detail to understand and reproduce the problem. Inadequate
bug reports will be closed with a request for more information.
Bug reports without an associated pull request are not likely to be addressed, but will be
left open for some time to see if anyone can contribute a solution. However, bug reports
with a pull request are likely to be merged promptly.
## Licensing
Contributions via GitHub pull requests are gladly accepted from their original author.
Along with any pull requests, please state that the contribution is your original work and
that you license the work to the project under the project's open source license.
Whether or not you state this explicitly, by submitting any copyrighted material via
pull request, email, or other means you agree to license the material under the project's
open source license and warrant that you have the legal authority to do so.

View file

@ -26,17 +26,11 @@ library implemented in Java, with ports to other languages.
| android | Android client Barcode Scanner [![Barcode Scanner](http://www.android.com/images/brand/android_app_on_play_logo_small.png)](https://play.google.com/store/apps/details?id=com.google.zxing.client.android)
| androidtest | Android test app, ZXing Test
| android-integration | Supports integration with Barcode Scanner via `Intent`
| android-core | Android-related code shared among `android`, `androidtest`, `glass`
| glass | Simple Google Glass application
| zxingorg | The source behind `zxing.org`
| zxing.appspot.com | The source behind web-based barcode generator at `zxing.appspot.com`
### Intermittently maintained
There are also additional modules which are contributed and/or intermittently maintained:
| Module | Description
| ------------ | -----------
| jruby | JRuby wrapper
### Available in previous releases
| Module | Description
@ -45,21 +39,24 @@ There are also additional modules which are contributed and/or intermittently ma
| [iphone](https://github.com/zxing/zxing/tree/00f634024ceeee591f54e6984ea7dd666fab22ae/iphone) | iPhone client
| [objc](https://github.com/zxing/zxing/tree/00f634024ceeee591f54e6984ea7dd666fab22ae/objc) | Objective C port
| [actionscript](https://github.com/zxing/zxing/tree/c1df162b95e07928afbd4830798cc1408af1ac67/actionscript) | Partial ActionScript port
| [jruby](https://github.com/zxing/zxing/tree/a95a8fee842f67fb43799a8e0e70e4c68b509c43/jruby) | JRuby wrapper
### Related third-party open source projects
### ZXing-based third-party open source projects
| Module | Description
| -------------------------------------------------- | -----------
| [QZXing](https://sourceforge.net/projects/qzxing) | port to Qt framework
| [ZXing .NET](http://zxingnet.codeplex.com/) | port to .NET and C#, and related Windows platform
| Module | Description
| --------------------------------------------------------------- | -----------
| [QZXing](https://sourceforge.net/projects/qzxing) | port to Qt framework
| [zxing-cpp](https://github.com/glassechidna/zxing-cpp) | port to C++ (forked from the [deprecated official C++ port](https://github.com/zxing/zxing/tree/00f634024ceeee591f54e6984ea7dd666fab22ae/cpp))
| [zxing_cpp.rb](https://github.com/glassechidna/zxing_cpp.rb) | bindings for Ruby (not just JRuby), powered by [zxing-cpp](https://github.com/glassechidna/zxing-cpp)
| [ZXing .NET](http://zxingnet.codeplex.com/) | port to .NET and C#, and related Windows platform
### Other third-party open source projects
### Other related third-party open source projects
| Module | Description
| ---------------------------------------------- | -----------
| [Barcode4J](http://barcode4j.sourceforge.net/) | Encoder library in Java
| [ZBar](http://zbar.sourceforge.net/) | Decoder in C++, especially for iPhone
| [Zint](http://sourceforge.net/projects/zint/) | Barcode generator
| [Barcode4J](http://barcode4j.sourceforge.net/) | Generator library in Java
| [ZBar](http://zbar.sourceforge.net/) | Reader library in C99
| [Zint](http://sourceforge.net/projects/zint/) | Generator library in C99
## Links
@ -78,6 +75,7 @@ on StackOverflow](http://stackoverflow.com/questions/tagged/zxing).
[![Build Status](https://travis-ci.org/zxing/zxing.png?branch=master)](https://travis-ci.org/zxing/zxing)
[![Coverity Status](https://scan.coverity.com/projects/1924/badge.svg)](https://scan.coverity.com/projects/1924)
[![codecov.io](https://codecov.io/github/zxing/zxing/coverage.svg?branch=master)](https://codecov.io/github/zxing/zxing?branch=master)
QR code is trademarked by Denso Wave, inc. Thanks to Haase & Martin OHG for contributing the logo.

View file

@ -18,7 +18,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>android-core</artifactId>
<version>3.0.2-SNAPSHOT</version>
<version>3.2.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
@ -31,7 +31,7 @@
<parent>
<groupId>com.google.zxing</groupId>
<artifactId>zxing-parent</artifactId>
<version>3.0.2-SNAPSHOT</version>
<version>3.2.1-SNAPSHOT</version>
</parent>
<name>ZXing Android Core</name>

View file

@ -16,6 +16,7 @@
package com.google.zxing.client.android.camera;
import android.annotation.TargetApi;
import android.graphics.Point;
import android.graphics.Rect;
import android.hardware.Camera;
@ -36,6 +37,7 @@ import java.util.regex.Pattern;
*
* @author Sean Owen
*/
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
public final class CameraConfigurationUtils {
private static final String TAG = "CameraConfiguration";
@ -61,23 +63,23 @@ public final class CameraConfigurationUtils {
String focusMode = null;
if (autoFocus) {
if (safeMode || disableContinuous) {
focusMode = CameraConfigurationUtils.findSettableValue("focus mode",
supportedFocusModes,
Camera.Parameters.FOCUS_MODE_AUTO);
focusMode = findSettableValue("focus mode",
supportedFocusModes,
Camera.Parameters.FOCUS_MODE_AUTO);
} else {
focusMode = CameraConfigurationUtils.findSettableValue("focus mode",
supportedFocusModes,
Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE,
Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO,
Camera.Parameters.FOCUS_MODE_AUTO);
focusMode = findSettableValue("focus mode",
supportedFocusModes,
Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE,
Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO,
Camera.Parameters.FOCUS_MODE_AUTO);
}
}
// Maybe selected auto-focus but not available, so fall through here:
if (!safeMode && focusMode == null) {
focusMode = CameraConfigurationUtils.findSettableValue("focus mode",
supportedFocusModes,
Camera.Parameters.FOCUS_MODE_MACRO,
Camera.Parameters.FOCUS_MODE_EDOF);
focusMode = findSettableValue("focus mode",
supportedFocusModes,
Camera.Parameters.FOCUS_MODE_MACRO,
Camera.Parameters.FOCUS_MODE_EDOF);
}
if (focusMode != null) {
if (focusMode.equals(parameters.getFocusMode())) {
@ -92,14 +94,14 @@ public final class CameraConfigurationUtils {
List<String> supportedFlashModes = parameters.getSupportedFlashModes();
String flashMode;
if (on) {
flashMode = CameraConfigurationUtils.findSettableValue("flash mode",
supportedFlashModes,
Camera.Parameters.FLASH_MODE_TORCH,
Camera.Parameters.FLASH_MODE_ON);
flashMode = findSettableValue("flash mode",
supportedFlashModes,
Camera.Parameters.FLASH_MODE_TORCH,
Camera.Parameters.FLASH_MODE_ON);
} else {
flashMode = CameraConfigurationUtils.findSettableValue("flash mode",
supportedFlashModes,
Camera.Parameters.FLASH_MODE_OFF);
flashMode = findSettableValue("flash mode",
supportedFlashModes,
Camera.Parameters.FLASH_MODE_OFF);
}
if (flashMode != null) {
if (flashMode.equals(parameters.getFlashMode())) {
@ -263,10 +265,9 @@ public final class CameraConfigurationUtils {
Log.i(TAG, "Negative effect already set");
return;
}
String colorMode =
CameraConfigurationUtils.findSettableValue("color effect",
parameters.getSupportedColorEffects(),
Camera.Parameters.EFFECT_NEGATIVE);
String colorMode = findSettableValue("color effect",
parameters.getSupportedColorEffects(),
Camera.Parameters.EFFECT_NEGATIVE);
if (colorMode != null) {
parameters.setColorEffect(colorMode);
}

View file

@ -18,22 +18,20 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>android-integration</artifactId>
<version>3.0.2-SNAPSHOT</version>
<version>3.2.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>4.1.1.4</version>
<scope>provided</scope>
</dependency>
</dependencies>
<parent>
<groupId>com.google.zxing</groupId>
<artifactId>zxing-parent</artifactId>
<version>3.0.2-SNAPSHOT</version>
<version>3.2.1-SNAPSHOT</version>
</parent>
<build>

View file

@ -308,7 +308,7 @@ public class IntentIntegrator {
}
intentScan.putExtra("SCAN_FORMATS", joinedByComma.toString());
}
// check requested camera ID
if (cameraId >= 0) {
intentScan.putExtra("SCAN_CAMERA_ID", cameraId);

View file

@ -16,8 +16,8 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.zxing.client.android"
android:versionName="4.6.5"
android:versionCode="100"
android:versionName="4.7.3"
android:versionCode="103"
android:installLocation="auto">
<uses-permission android:name="android.permission.CAMERA"/>
@ -30,7 +30,7 @@
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="19"/>
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="21"/>
<!-- Don't require camera, as this requires a rear camera. This allows it to work on the Nexus 7 -->
<uses-feature android:name="android.hardware.camera" android:required="false"/>

View file

@ -7,8 +7,8 @@
</head>
<body>
<ul>
<li> Neue Option zur automatischen Ausrichtung Veränderungen zu stoppen </li>
<li> Neue Option, um automatisch geöffneten Webseiten </li>
<li> Die History-Funktion kann ausgeschaltet werden </li>
<li> Bug-Fixes </li>
</ul>
<p>Übersetzt von Google Translate.</p></body>
</html>

View file

@ -7,6 +7,7 @@
</head>
<body>
<ul>
<li>The History feature can be turned off</li>
<li>Bug fixes</li>
</ul>
</body>

View file

@ -6,10 +6,13 @@
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Códigos de barras tradicionales, tales como las impresas en el embalaje del producto, se conocen también como uno códigos de barras bidimensionales. Existen varios tipos de uso común, incluyendo UPC y EAN. La mayoría de aspecto similar a este: </p>
<p> Códigos de barras tradicionales, tales como las impresas en el embalaje del producto,
se conocen también como uno códigos de barras bidimensionales. Existen varios tipos de uso común,
incluyendo UPC y EAN. La mayoría de aspecto similar a este: </p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p> Estos códigos de barras 1D contiene un código único que generalmente describe un producto, como un CD o un libro. Usted puede ver este código en el Internet para encontrar precios, comentarios y más. </p>
<p> Si digitaliza un libro, también puede buscar en el contenido del libro para una palabra o frase, y encontrar todas las páginas en las que aparece: </p>
<p> Estos códigos de barras 1D contiene un código único que generalmente describe un producto, como un CD o un libro.
Usted puede ver este código en el Internet para encontrar precios, comentarios y más. </p>
<p> Si digitaliza un libro, también puede buscar en el contenido del libro para una palabra o frase, y encontrar todas
las páginas en las que aparece: </p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
<p>Traducido por Google Translate.</p></body>
</html>
</html>

View file

@ -6,23 +6,25 @@
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong> Barcode Scanner </strong> También entiende cómo leer dos códigos de barras bidimensionales, como los códigos QR y códigos Data Matrix. Por ejemplo, los códigos que siguen contienen un hipervínculo a la página principal de Project ZXing: </p>
<p><strong> Barcode Scanner </strong> También entiende cómo leer dos códigos de barras bidimensionales,
como los códigos QR y códigos Data Matrix. Por ejemplo, los códigos que siguen contienen un hipervínculo a la
página principal de Project ZXing: </p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
<img src="../images/big-pdf417.png"/>
<img src="../images/big-aztec.png"/>
</p>
<p> También puede representar la información de contacto en un código QR, y lo puso en una tarjeta de visita o en el sitio web. Cuando se escanea, la pantalla de resultados se ofrecen una serie de acciones: </p>
<p> También puede representar la información de contacto en un código QR, y usarlo en una tarjeta
de visita o en un sitio web. Cuando se escanea, la pantalla de resultados se ofrecen una serie de acciones: </p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p> Además de las direcciones URL y la información de contacto, los códigos QR también puede contener: </p>
<ul>
<li> Los eventos del calendario, que se pueden añadir a su calendario </li>
<li> Los números de teléfono, que puede marcar </li>
<li> SMS números, que puede mensaje de texto </li>
<li> Direcciones de correo electrónico, que se puede enviar por correo electrónico </li>
<li> SMS números, a los que puede enviar mensaje de texto </li>
<li> Direcciones de correo electrónico, a los que se puede enviar por correo electrónico </li>
<li> Coordenadas Geográficas, que se puede abrir en Mapas </li>
<li> Texto sin formato, que se puede leer, compartir con un amigo </li>
</ul>
<p>Traducido por Google Translate.</p></body>
</html>
</html>

View file

@ -2,22 +2,23 @@
<html>
<head>
<meta charset="UTF-8"/>
<title> Barcode Scanner Ayuda </title>
<title> Ayuda de Barcode Scanner</title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> La aplicación oficial de Android del proyecto de código abierto ZXing:<br/>
<a href="http://github.com/zxing/zxing"> http://github.com/zxing/zxing </a></p>
<p> Barcode Scanner utiliza la cámara de su móvil para leer códigos de barras y buscar información sobre los productos como los precios y las revisiones. </p>
<p> Barcode Scanner utiliza la cámara de su móvil para leer códigos de barras y buscar información sobre
los productos como los precios y las revisiones. </p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p> También lee los códigos de barras 2D, como los Códigos QR y Data Matrix. Estos pueden contener enlaces a otros sitios web, información de contacto, como números de teléfono y direcciones de correo electrónico y mucho más. </p>
<p> También lee los códigos de barras 2D, como los Códigos QR y Data Matrix. Estos pueden contener enlaces
a otros sitios web, información de contacto, como números de teléfono y direcciones de correo electrónico y mucho más. </p>
<ul class="touchable">
<li><a href="whatsnew.html"> ¿Qué hay de nuevo en esta versión? </a></li>
<li><a href="scanning.html"> Cómo analizar </a></li>
<li><a href="scanning.html"> Cómo escanear </a></li>
<li><a href="about1d.html"> Acerca de los códigos de barras 1D </a></li>
<li><a href="about2d.html"> Acerca de los códigos de barras 2D </a></li>
<li><a href="sharing.html"> Cómo crear códigos QR </a></li>
<li><a href="license.html"> Política de Privacidad Información Legal y Licencia </a></li>
<li><a href="license.html"> Política de Privacidad Información Legal y Licencia </a></li>
</ul>
<p>Traducido por Google Translate.</p></body>
</html>
</html>

View file

@ -9,11 +9,20 @@
<h3> Política de privacidad </h3>
<p><strong class="notranslate">Barcode Scanner</strong> no recoger, almacenar o transmitir información sobre sus usuarios, ni de uso de la aplicación. La aplicación tiene acceso a información personal, como contactos y favoritos solo con el fin de implementar la funcionalidad de la aplicación, tales como el intercambio de contactos y favoritos de los códigos QR en la pantalla. </p>
<p><strong class="notranslate">Barcode Scanner</strong> no recogerá, almacenará ni transmitirá información sobre sus usuarios,
ni de uso de la aplicación. La aplicación tiene acceso a información personal, como contactos y favoritos solo con el fin
de implementar la funcionalidad de la aplicación, tales como el intercambio de contactos y favoritos de los códigos QR en
la pantalla. </p>
<p> Tenga en cuenta que esta aplicación tiene acceso a servicios de terceros, como Google Books, Google Product Search y Amazon, con el fin de obtener información adicional después de una exploración. Estos terceros pueden recibir y registrar estas solicitudes. Además, puede ser necesario el envío de la solicitud a un servidor operado por esta aplicación, con el fin de transformar la solicitud para su uso con el servicio de terceros, tales como la firma de la solicitud. No hay información adicional se añade a las peticiones, además de los términos de la consulta. </p>
<p> Tenga en cuenta que esta aplicación tiene acceso a servicios de terceros, como Google Books, Google Product Search
y Amazon, con el fin de obtener información adicional después de una exploración. Estos terceros pueden recibir y
registrar estas solicitudes. Además, puede ser necesario el envío de la solicitud a un servidor operado por esta
aplicación, con el fin de transformar la solicitud para su uso con el servicio de terceros, tales como la firma de
la solicitud. No hay información adicional añadida a las peticiones, además de los términos de la consulta. </p>
<p> También tenga en cuenta que los enlaces de esta solicitud a sitios web de terceros y aplicaciones. Una vez más, hay más información que los términos de consulta se transmiten como parte de estos enlaces. Estos sitios y aplicaciones son independientes y no afiliados a esta solicitud, y no están cubiertos por esta Política de Privacidad. </p>
<p> También tenga en cuenta que los enlaces de esta solicitud a sitios web de terceros y aplicaciones. Una vez más,
hay más información que los términos de consulta se transmiten como parte de estos enlaces. Estos sitios y aplicaciones
son independientes y no afiliados a esta solicitud, y no están cubiertos por esta Política de Privacidad. </p>
<h3> Marcas comerciales </h3>
@ -22,9 +31,9 @@ Barcode Scanner, ZXing, QR Code, Data Matrix, Aztec</span> son marcas comerciale
<h3> Licencia y Derechos de Autor </h3>
<p> Este proyecto se basa en la <a class="notranslate" href="http://github.com/zxing/zxing">ZXing</a> código de barras de código abierto biblioteca de exploración, y está disponible para usted bajo los términos de la <a class="notranslate" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a> : </p>
<p> Este proyecto se basa en la <a class="notranslate" href="http://github.com/zxing/zxing">ZXing</a> código de barras
de código abierto biblioteca de exploración, y está disponible para usted bajo los términos de la
<a class="notranslate" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a> : </p>
<p style="font-size:200%"><a class="notranslate" href="../html/apache-license.txt">Apache License 2.0</a></p>
<p>Traducido por Google Translate.</p></body>
</html>
</html>

View file

@ -2,18 +2,17 @@
<html>
<head>
<meta charset="UTF-8"/>
<title> Cómo analizar </title>
<title> Cómo escanear </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Barcode Scanner escanea continuamente una región cuadrada que aparece en su pantalla - Sólo basta definir el teléfono de modo que el código de barras es completamente dentro del rectángulo del visor: </p>
<p> Barcode Scanner escanea continuamente una región cuadrada que aparece en su pantalla - Sólo basta introducir el código de barras es completamente dentro del rectángulo del visor: </p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p> Códigos de barras 1D, como las que se encuentran en los productos requieren un teléfono con enfoque automático. Sin él, sólo los códigos QR y códigos Data Matrix será susceptible de ser analizada. </p>
<p> Cuando un código de barras es leído, un sonido se reproducirá y podrás ver los resultados del análisis, una descripción de lo que contiene el código de barras, y las opciones para tomar acción sobre los contenidos. </p>
<p> Si usted está teniendo problemas de escaneo, asegúrese de sujetar el teléfono fijo. Si la cámara no puede enfocar, mueva el teléfono más lejos o más cerca del código de barras. </p>
<p> Códigos de barras 1D, como las que se encuentran en los productos requieren un teléfono con enfoque automático. Sin él, sólo los códigos QR y códigos Data Matrix serán susceptibles de ser analizados. </p>
<p> Cuando un código de barras es leído, un sonido será reproducido y podrás ver los resultados del análisis, una descripción de lo que contiene el código de barras, y las distintas opciones ejecutar acciones. </p>
<p> Si usted está teniendo problemas de escaneo, asegúrese de sujetar el teléfono estable. Si la cámara no puede enfocar, mueva el teléfono más lejos o más cerca del código de barras. </p>
<ul class="touchable">
<li><a href="about1d.html"> Acerca de los códigos de barras 1D </a></li>
<li><a href="about2d.html"> Acerca de los códigos de barras 2D </a></li>
</ul>
<p>Traducido por Google Translate.</p></body>
</html>
</html>

View file

@ -6,9 +6,8 @@
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Además de escanear códigos de barras 2D, escáner de código de barras también puede generar un código QR y lo mostrará en la pantalla. A continuación, puede mostrar a un amigo, y dejar que escanear el código de barras con su teléfono: </p>
<p> Además de escanear códigos de barras 2D, Barcode Scanner también puede generar un código QR y lo mostrará en la pantalla. A continuación, lo puede mostrar a un amigo, y dejar que escanear el código de barras con su teléfono: </p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p> Para utilizar esta función, presione el botón Menú en la pantalla de exploración principal y toque Compartir. A continuación, seleccione si desea compartir un contacto, un marcador, una aplicación o el contenido del portapapeles. Un código QR se generará automáticamente. Cuando haya terminado, pulse Atrás o Inicio. </p>
<p> Para utilizar esta función, presione el botón Menú en la pantalla de exploración principal y presione Compartir. A continuación, seleccione si desea compartir un contacto, un marcador, una aplicación o el contenido del portapapeles. Un código QR se generará automáticamente. Cuando haya terminado, pulse Atrás o Inicio. </p>
<p> Para generar códigos QR desde su computadora, pruebe el generador ZXing Código QR: <a href="http://zxing.appspot.com/generator/"> http://zxing.appspot.com/generator/ </a></p>
<p>Traducido por Google Translate.</p></body>
</html>
</html>

View file

@ -2,13 +2,13 @@
<html>
<head>
<meta charset="UTF-8"/>
<title> ¿Qué hay de nuevo en Barcode Scanner </title>
<title> ¿Qué hay de nuevo en Barcode Scanner? </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<ul>
<li> Nueva opción para detener los cambios automáticos de orientación </li>
<li> Nueva opción para abrir automáticamente las páginas web </li>
<li> La función de Historia se puede apagar </li>
<li> Corrección de errores </li>
</ul>
<p>Traducido por Google Translate.</p></body>
</html>

View file

@ -7,8 +7,8 @@
</head>
<body>
<ul>
<li> Nouvelle option pour arrêter les changements d'orientation automatique </li>
<li> Nouvelle option pour ouvrir automatiquement les pages Web </li>
<li> La fonction Historique peut être désactivée </li>
<li> Corrections de bugs </li>
</ul>
<p>Traduite par Google Translate.</p></body>
<p>Traduit par Google Translate.</p></body>
</html>

View file

@ -7,8 +7,8 @@
</head>
<body>
<ul>
<li> Nuova opzione per fermare cambiamenti automatici di orientamento </li>
<li> Nuova opzione per aprire automaticamente le pagine web </li>
<li> La funzione Cronologia può essere disattivata </li>
<li> Correzioni di bug </li>
</ul>
<p>Tradotto da Google Translate.</p></body>
</html>

View file

@ -7,8 +7,8 @@
</head>
<body>
<ul>
<li> 自動向きの変化を停止する新しいオプション </li>
<li> 新しいオプションを自動的に開いているWebページ </li>
<li> 履歴機能をオフにすることができ </li>
<li> バグ修正 </li>
</ul>
<p>Google翻訳翻訳。</p></body>
<p>Googleによって翻訳翻訳。</p></body>
</html>

View file

@ -7,8 +7,8 @@
</head>
<body>
<ul>
<li> 자동 방향 변경을 중지 할 수있는 새로운 옵션 </li>
<li> 웹 페이지에 자동으로 열려있는 새로운 옵션 </li>
<li> 역사 기능을 해제 할 수 있습니다 </li>
<li> 버그 수정 </li>
</ul>
<p>Google 번역에 의해 번역.</p></body>
<p>구글 번역은 번역.</p></body>
</html>

View file

@ -7,8 +7,8 @@
</head>
<body>
<ul>
<li> Nieuwe optie voor automatische wijzigingen oriëntatie stoppen </li>
<li> Nieuwe optie voor het automatisch openen van webpagina's </li>
<li> De Geschiedenis functie kan worden uitgeschakeld </li>
<li> Bug fixes </li>
</ul>
<p>Vertaald door Google Translate.</p></body>
</html>

View file

@ -7,8 +7,8 @@
</head>
<body>
<ul>
<li> Nova opção para parar as mudanças de orientação automática </li>
<li> Nova opção para abrir automaticamente páginas da web </li>
<li> O recurso de História pode ser desligado </li>
<li> Correções de bugs </li>
</ul>
<p>Traduzido pelo Google Translate.</p></body>
</html>

View file

@ -7,8 +7,8 @@
</head>
<body>
<ul>
<li> Новая опция, чтобы остановить автоматические изменения ориентации </li>
<li> Новая опция для автоматического открытия веб-страницы </li>
<li> Функция сохранения истории может быть отключен </li>
<li> Исправление ошибок </li>
</ul>
<p>Перевод Google Translate.</p></body>
</html>

View file

@ -7,8 +7,8 @@
</head>
<body>
<ul>
<li> 新的选项来停止自动改变方向 </li>
<li> 新的选项来自动打开网页 </li>
<li> 历史特征可以被关闭 </li>
<li> Bug修复 </li>
</ul>
<p>由谷歌自动翻译系统</p></body>
<p>由谷歌翻译翻译</p></body>
</html>

View file

@ -7,8 +7,8 @@
</head>
<body>
<ul>
<li> 新的選項來停止自動改變方向 </li>
<li> 新的選項來自動打開網頁 </li>
<li> 歷史特徵可以被關閉 </li>
<li> Bug修復 </li>
</ul>
<p>由谷歌自動翻譯系統</p></body>
<p>由谷歌翻譯翻譯</p></body>
</html>

View file

@ -18,19 +18,17 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>android</artifactId>
<version>4.6.5</version>
<version>4.7.3</version>
<packaging>apk</packaging>
<dependencies>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>android-core</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>com.google.android</groupId>
@ -41,16 +39,23 @@
<parent>
<groupId>com.google.zxing</groupId>
<artifactId>zxing-parent</artifactId>
<version>3.0.2-SNAPSHOT</version>
<version>3.2.1-SNAPSHOT</version>
</parent>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<groupId>com.simpligility.maven.plugins</groupId>
<artifactId>android-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>

View file

@ -10,7 +10,7 @@
# be complete or up to date. (The "arithmetic" optimization can be
# used if you are only targeting Android 2.0 or later.) Make sure you
# test thoroughly if you go this route.
-optimizations !code/simplification/cast,!field/*,!class/merging/*,!code/allocation/variable,!method/marking/private
-optimizations !code/simplification/cast,!field/*,!class/merging/*,!class/unboxing/enum,!code/allocation/variable,!method/marking/private
-optimizationpasses 5
-allowaccessmodification
-dontpreverify

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">تقوم بتحسين عملية المسح في إضاءة ضعيفة في بعض الهواتف، ولكن يمكن أن يتسبب في حدوث سطوع</string>
<string name="preferences_front_light_title">استخدم إضاءة أمامية</string>
<string name="preferences_general_title">إعدادات عامة</string>
<string name="preferences_history_summary">تخزين عمليات الفحص الخاص بك في التاريخ</string>
<string name="preferences_history_title">أضف إلى التاريخ</string>
<string name="preferences_invert_scan_summary">مسح الباركود لأبيض على خلفية سوداء. لا تتوفر على بعض الأجهزة.</string>
<string name="preferences_invert_scan_title">عكس المسح الضوئي</string>
<string name="preferences_name">إعدادات</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Подобрява четенето при лошо осветление, но предизвиква отблясъци. Само за някои модели.</string>
<string name="preferences_front_light_title">Използвай фенерче</string>
<string name="preferences_general_title">Общи настройки</string>
<string name="preferences_history_summary">Съхранявайте сканирания в историята</string>
<string name="preferences_history_title">Добави към История</string>
<string name="preferences_invert_scan_summary">Сканиране за бели баркодове на черен фон. Не е на разположение на някои устройства.</string>
<string name="preferences_invert_scan_title">Обръщане на сканиране</string>
<string name="preferences_name">Настройки</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Millora l\'escaneig amb poca llum en alguns dispositius, però pot produir enlluernament. No funciona en tots els dispositius.</string>
<string name="preferences_front_light_title">Usa el llum frontal</string>
<string name="preferences_general_title">Configuració general</string>
<string name="preferences_history_summary">Emmagatzemi les seves exploracions de la història</string>
<string name="preferences_history_title">Afegir a la Història</string>
<string name="preferences_invert_scan_summary">Escanejar codis de barres blanques sobre fons negre. No disponible en alguns dispositius.</string>
<string name="preferences_invert_scan_title">Invertir exploració</string>
<string name="preferences_name">Configuració</string>

View file

@ -26,14 +26,14 @@
<string name="button_dial">Číselník</string>
<string name="button_email">Poslat emailem</string>
<string name="button_get_directions">Získat nastavení</string>
<string name="button_mms">Poslat přes MMS</string>
<string name="button_mms">Zaslat přes MMS</string>
<string name="button_ok">OK</string>
<string name="button_open_browser">Otevřít prohlížeč</string>
<string name="button_product_search">Vyhledat produkt</string>
<string name="button_search_book_contents">Hledat obsah knihy</string>
<string name="button_share_app">Aplikace</string>
<string name="button_share_bookmark">Záložky</string>
<string name="button_share_by_email">Sdílet pomocí Email</string>
<string name="button_share_by_email">Sdílet pomocí emailu</string>
<string name="button_share_by_sms">Sdílet pomocí SMS</string>
<string name="button_share_clipboard">Schránka</string>
<string name="button_share_contact">Kontakty</string>
@ -41,7 +41,7 @@
<string name="button_sms">Poslat SMS</string>
<string name="button_web_search">Hledat na webu</string>
<string name="button_wifi">Připojení k síti</string>
<string name="contents_contact">Info kontaktu</string>
<string name="contents_contact">Kontakty, informace</string>
<string name="contents_email">Emailová adresa</string>
<string name="contents_location">Zeměpisné údaje</string>
<string name="contents_phone">Telefonní číslo</string>
@ -51,39 +51,39 @@
<string name="history_clear_text">Vyčistit historii</string>
<string name="history_email_title">Barcode Scanner historie</string>
<string name="history_empty">Prázdný</string>
<string name="history_empty_detail">Žádný čárový kód vyšetření byly zaznamenány ještě</string>
<string name="history_send">Poslat historii</string>
<string name="history_empty_detail">Žádný čárové kódy nebyly ještě zaznamenány</string>
<string name="history_send">Zaslat historii</string>
<string name="history_title">Historie</string>
<string name="menu_encode_mecard">Použi MECARD</string>
<string name="menu_encode_vcard">Použi vCard</string>
<string name="menu_encode_mecard">Použij MECARD</string>
<string name="menu_encode_vcard">Použij vCard</string>
<string name="menu_help">Pomoc!</string>
<string name="menu_history">Historie</string>
<string name="menu_settings">Nastavení</string>
<string name="menu_share">Sdílet</string>
<string name="msg_bulk_mode_scanned">Bulk režimu: čárový kód naskenované a uložené</string>
<string name="msg_camera_framework_bug">Omlouváme se, fotoaparát má problém. Možná bude nutné restartovat zařízení</string>
<string name="msg_bulk_mode_scanned">Dávkový režim: čárové kódy naskenované a uložené</string>
<string name="msg_camera_framework_bug">Omlouváme se, zjistili jsem problém s fotoaparátem. Možná bude nutné restartovat zařízení.</string>
<string name="msg_default_format">Formát</string>
<string name="msg_default_meta">Metadata</string>
<string name="msg_default_mms_subject">Ahoj</string>
<string name="msg_default_status">Strefte se čtverečkem na čárový kód</string>
<string name="msg_default_status">Zaměřte čtvercem na čárový kód</string>
<string name="msg_default_time">Čas</string>
<string name="msg_default_type">Typ</string>
<string name="msg_encode_contents_failed">Nepodařilo se rozkódovat čárový kód z poskytnutých údajů.</string>
<string name="msg_encode_contents_failed">Z poskytnutých údajů se nepodařilo rozkódovat čárový kód.</string>
<string name="msg_error">Chyba</string>
<string name="msg_google_books">Google</string>
<string name="msg_google_product">Google</string>
<string name="msg_intent_failed">Litujeme, požadovanou aplikaci nelze spustit. Čárový kód je nefunkční.</string>
<string name="msg_intent_failed">Litujeme, požadovanou aplikaci nelze spustit. Čárový kód nefunkční.</string>
<string name="msg_invalid_value">Neplatná hodnota</string>
<string name="msg_redirect">Přesměrování</string>
<string name="msg_sbc_book_not_searchable">Omlouváme se, tato kniha nelze nalézt.</string>
<string name="msg_sbc_failed">Omlouváme se, narazili jsme na problém.</string>
<string name="msg_sbc_book_not_searchable">Omlouváme se, tuto knihu nelze nalézt.</string>
<string name="msg_sbc_failed">Omlouváme se, objevil se problém.</string>
<string name="msg_sbc_no_page_returned">Stránka nenalezena.</string>
<string name="msg_sbc_page">Stránka</string>
<string name="msg_sbc_results">Výsledky</string>
<string name="msg_sbc_searching_book">Hledání knihy\u2026</string>
<string name="msg_sbc_snippet_unavailable">Snippet není k dispozici</string>
<string name="msg_share_explanation">Můžete sdílet čárový kód na vaší obrazovce a skenování, s jiným telefonem.</string>
<string name="msg_share_text">Nebo zadejte nějaký text</string>
<string name="msg_share_explanation">Můžete sdílet čárový kód na vaší obrazovce a načíst jej jiným telefonem.</string>
<string name="msg_share_text">Nebo zadejte nějaký text a zmáčkněte Enter</string>
<string name="msg_sure">Jste si jisti?</string>
<string name="msg_unmount_usb">Omlouváme se, karta SD není přístupná.</string>
<string name="preferences_actions_title">Byl nalezen čárový kód.\u2026</string>
@ -101,41 +101,43 @@
<string name="preferences_decode_PDF417_title">PDF417 (β)</string>
<string name="preferences_decode_QR_title">QR kódy</string>
<string name="preferences_device_bug_workarounds_title">Možná zástupná řešení chyb zařízení</string>
<string name="preferences_disable_barcode_scene_mode_title">Žádný čárový kód motivový program</string>
<string name="preferences_disable_barcode_scene_mode_title">Nevybrán žádný režim snímání čárovného kódu</string>
<string name="preferences_disable_continuous_focus_summary">Používejte pouze standardní zaostřování</string>
<string name="preferences_disable_continuous_focus_title">Soustavné zaměření</string>
<string name="preferences_disable_exposure_title">No expozice</string>
<string name="preferences_disable_metering_title">No měření</string>
<string name="preferences_disable_continuous_focus_title">Soustavné ostření</string>
<string name="preferences_disable_exposure_title">Vypnuta expozice</string>
<string name="preferences_disable_metering_title">Vypnuto měření</string>
<string name="preferences_front_light_auto">Automatický</string>
<string name="preferences_front_light_off">Neaktivní</string>
<string name="preferences_front_light_on">Aktivní</string>
<string name="preferences_front_light_summary">Zlepšuje skenování při slabém osvětlení na některých telefonech, ale může způsobit oslnění. Nefunguje na všech telefonech.</string>
<string name="preferences_front_light_title">Použít světlo</string>
<string name="preferences_general_title">Hlavní nastavení</string>
<string name="preferences_invert_scan_summary">Skenování čárových kódů pro bílé na černém pozadí. Není k dispozici v některých zařízeních.</string>
<string name="preferences_history_summary">Uložte si skeny v historii</string>
<string name="preferences_history_title">Přidat do dějin</string>
<string name="preferences_invert_scan_summary">Skenování čárových kódů - bílé na černém pozadí. Není k dispozici v některých zařízeních.</string>
<string name="preferences_invert_scan_title">Obrátit skenování</string>
<string name="preferences_name">Nastavení</string>
<string name="preferences_orientation_title">Žádné automatické otáčení</string>
<string name="preferences_orientation_title">Vypnout automatické otáčení</string>
<string name="preferences_play_beep_title">Zvuky</string>
<string name="preferences_remember_duplicates_summary">Duplity čárových kódú v historii ukládat samostatně, nebo jako jeden čárový kód</string>
<string name="preferences_remember_duplicates_title">Pamatovat všechny duplikáty</string>
<string name="preferences_remember_duplicates_summary">Duplicity čárových kódú v historii ukládat samostatně, nebo jako jeden čárový kód</string>
<string name="preferences_remember_duplicates_title">Zapomatovat všechny duplicity</string>
<string name="preferences_result_title">Výsledek nastavení</string>
<string name="preferences_scanning_title">Při skenování čárových kódů pro, dekódovat\u2026</string>
<string name="preferences_scanning_title">Během skenování čárových kódů, dekódovat\u2026</string>
<string name="preferences_search_country">Hledání země</string>
<string name="preferences_supplemental_summary">Získat více informací o obsahu čárového kódu</string>
<string name="preferences_supplemental_title">Získat více informací</string>
<string name="preferences_vibrate_title">Vibrace</string>
<string name="result_address_book">Našel jsem kontakt</string>
<string name="result_calendar">Našel jsem kalendář</string>
<string name="result_email_address">Našel jsem Email</string>
<string name="result_geo">Našel jsem Zeměpisné informace</string>
<string name="result_isbn">Našel jsem knihu</string>
<string name="result_product">Našel jsem produkt</string>
<string name="result_sms">Našel jsem SMS</string>
<string name="result_tel">Našel jsem telefoní číslo</string>
<string name="result_text">Našel jsem nějaký text</string>
<string name="result_uri">Našel jsem URL</string>
<string name="result_address_book">Kontakt nalezen</string>
<string name="result_calendar">Kalendář nalezen</string>
<string name="result_email_address">Email nalezen</string>
<string name="result_geo">Nalezeny zeměpisné informace</string>
<string name="result_isbn">Nalezena Kniha</string>
<string name="result_product">Nalezen produkt</string>
<string name="result_sms">Nalezena SMS adresa</string>
<string name="result_tel">Nalezeno telefoní číslo</string>
<string name="result_text">Nalezen nějaký text</string>
<string name="result_uri">Nalezeno URL</string>
<string name="result_wifi">Nalezeno bezdrátová konfigurace</string>
<string name="sbc_name">Google Knihy hledání</string>
<string name="wifi_changing_network">Požadující připojení k síti\u2026</string>
<string name="sbc_name">Google Book Search</string>
<string name="wifi_changing_network">Vyžaduje připojení k síti\u2026</string>
</resources>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Forbedrer aflæsning i svagt lys på nogle telefoner, men kan medføre genskær. Virker ikke på alle telefoner.</string>
<string name="preferences_front_light_title">Brug frontlys</string>
<string name="preferences_general_title">Generelle indstillinger</string>
<string name="preferences_history_summary">Gem dine scanninger i Historie</string>
<string name="preferences_history_title">Tilføj til Historie</string>
<string name="preferences_invert_scan_summary">Scan for hvide stregkoder på sort baggrund. Ikke tilgængelig på nogle enheder.</string>
<string name="preferences_invert_scan_title">Inverter scanning</string>
<string name="preferences_name">Indstillinger</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Verbessert bei einigen Mobiltelefonen das Scannen bei schwachem Licht, kann aber Überbelichtung verursachen. Funktioniert nicht mit allen Handys.</string>
<string name="preferences_front_light_title">Foto LED einschalten</string>
<string name="preferences_general_title">Allgemeine Einstellungen</string>
<string name="preferences_history_summary">Speichern Sie Ihre Scans im Verlauf</string>
<string name="preferences_history_title">Speichern im Verlauf</string>
<string name="preferences_invert_scan_summary">Für weiße Barcodes auf schwarzem Hintergrund. Nicht bei allen Geräten verfügbar.</string>
<string name="preferences_invert_scan_title">Negativ-Scan</string>
<string name="preferences_name">Einstellungen</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Βελτιώνει το σκανάρισμα με χαμηλο φωτισμό σε μερικά κινητά, ίσως όμως προκαλέσει λάμψη. Δουλεύει σε μερικά κινητά.</string>
<string name="preferences_front_light_title">Χρήση μπροστινού φακού</string>
<string name="preferences_general_title">Γενικές ρυθμίσεις</string>
<string name="preferences_history_summary">Αποθηκεύστε τις σαρώσεις σας στην Ιστορία</string>
<string name="preferences_history_title">Προσθήκη στην Ιστορία</string>
<string name="preferences_invert_scan_summary">Σάρωση για τη λευκή barcodes σε μαύρο φόντο. Δεν διατίθεται σε ορισμένες συσκευές.</string>
<string name="preferences_invert_scan_title">Αντιστροφή της σάρωσης</string>
<string name="preferences_name">Ρυθμίσεις</string>

View file

@ -51,7 +51,7 @@
<string name="history_clear_text">Borrar historial</string>
<string name="history_email_title">Historial de Escáner de código de barras</string>
<string name="history_empty">Vacío</string>
<string name="history_empty_detail">Ningún escanea de códigos de barras se han registrado aún</string>
<string name="history_empty_detail">Ninguna lectura de código de barras se ha registrado aún</string>
<string name="history_send">Enviar historial</string>
<string name="history_title">Historial</string>
<string name="menu_encode_mecard">Usar MECARD</string>
@ -72,7 +72,7 @@
<string name="msg_error">Error</string>
<string name="msg_google_books">Google</string>
<string name="msg_google_product">Google</string>
<string name="msg_intent_failed">Lo sentimos, la aplicación solicitada no pudo ser lanzada. El contenido de código de barras puede ser inválida.</string>
<string name="msg_intent_failed">Lo sentimos, la aplicación solicitada no pudo ser lanzada. El contenido del código de barras puede ser inválido.</string>
<string name="msg_invalid_value">Valor no válido</string>
<string name="msg_redirect">Redirigir</string>
<string name="msg_sbc_book_not_searchable">Lo sentimos, no se puede buscar en este libro.</string>
@ -110,14 +110,16 @@
<string name="preferences_front_light_off">Inactivo</string>
<string name="preferences_front_light_on">Activo</string>
<string name="preferences_front_light_summary">Mejora la exploración en condiciones de poca luz en algunos teléfonos, pero puede causar deslumbramiento. No funciona en todos los teléfonos.</string>
<string name="preferences_front_light_title">Utilizar luz delantera</string>
<string name="preferences_front_light_title">Utilizar flash</string>
<string name="preferences_general_title">Configuración general</string>
<string name="preferences_history_summary">Almacene escáneres en la historia</string>
<string name="preferences_history_title">Añadir a Historia</string>
<string name="preferences_invert_scan_summary">Escanear códigos de barras blancas sobre fondo negro. No disponible en algunos dispositivos.</string>
<string name="preferences_invert_scan_title">Invertir exploración</string>
<string name="preferences_name">Configuración</string>
<string name="preferences_orientation_title">Sin rotación automática</string>
<string name="preferences_play_beep_title">Bip</string>
<string name="preferences_remember_duplicates_summary">Almacenar múltiples escáneres del mismo código de barras en el Historial.</string>
<string name="preferences_remember_duplicates_summary">Almacenar múltiples lecturas del mismo código de barras en el Historial.</string>
<string name="preferences_remember_duplicates_title">Recuerde duplicados</string>
<string name="preferences_result_title">Configuración de resultados</string>
<string name="preferences_scanning_title">Al escanear códigos de barras, descodificar\u2026</string>
@ -131,7 +133,7 @@
<string name="result_geo">Coordenadas geográficas encontradas</string>
<string name="result_isbn">Libro encontrado</string>
<string name="result_product">Producto encontrado</string>
<string name="result_sms">Dirección de SMS encontrado</string>
<string name="result_sms">Dirección de SMS encontrada</string>
<string name="result_tel">Número de teléfono encontrado</string>
<string name="result_text">Texto encontrado</string>
<string name="result_uri">URL encontrada</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Eskaneatzea hobetzen du zenbait telefonotan argiztapena txikia denean, baina distirak eragin ditzake. Ez du telefono guztietan funtzionatzen.</string>
<string name="preferences_front_light_title">Erabili aurreko argia</string>
<string name="preferences_general_title">Ezarpen orokorrak</string>
<string name="preferences_history_summary">Biltegiratu bilaketen Historian</string>
<string name="preferences_history_title">Historia Gehitu</string>
<string name="preferences_invert_scan_summary">Atzeko plano beltzean kodeak zuri eskaneatzeko. Zenbait gailuk ez dago eskuragarri.</string>
<string name="preferences_invert_scan_title">Alderantzikatu eskaneatzeko</string>
<string name="preferences_name">Ezarpenak</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Parantaa joissain laitteissa hämärässä skannaamista, mutta voi aiheuttaa häikäisyongelmia. Ei toimi kaikissa puhelimissa.</string>
<string name="preferences_front_light_title">Käytä etuosan valoa</string>
<string name="preferences_general_title">Yleiset asetukset</string>
<string name="preferences_history_summary">Säilytä skannaa historia</string>
<string name="preferences_history_title">Lisää Historia</string>
<string name="preferences_invert_scan_summary">Etsi valkoisia viivakoodeja mustalla taustalla. Ei toimi kaikilla laitteilla.</string>
<string name="preferences_invert_scan_title">Käänteinen (negatiivin) skannaus</string>
<string name="preferences_name">Asetukset</string>

View file

@ -20,79 +20,79 @@
<string name="bookmark_picker_name">Marque-pages</string>
<string name="button_add_calendar">Ajouter à l\'agenda</string>
<string name="button_add_contact">Ajouter un contact</string>
<string name="button_book_search">Recherche de livres</string>
<string name="button_book_search">Recherche de livre</string>
<string name="button_cancel">Annuler</string>
<string name="button_custom_product_search">Recherche personnalisée</string>
<string name="button_dial">Composer numéro</string>
<string name="button_email">Envoyer email</string>
<string name="button_get_directions">Itinéraire</string>
<string name="button_custom_product_search">Recherche personnalisée de produit</string>
<string name="button_dial">Composer un numéro</string>
<string name="button_email">Envoyer un courriel</string>
<string name="button_get_directions">Obtenir un itinéraire</string>
<string name="button_mms">Envoyer MMS</string>
<string name="button_ok">OK</string>
<string name="button_open_browser">Ouvrir le navigateur</string>
<string name="button_product_search">Recherche de produits</string>
<string name="button_product_search">Recherche de produit</string>
<string name="button_search_book_contents">Rechercher dans le contenu</string>
<string name="button_share_app">Application</string>
<string name="button_share_bookmark">Marque-page</string>
<string name="button_share_by_email">Partager par email</string>
<string name="button_share_by_sms">Partager par SMS</string>
<string name="button_share_clipboard">Presse-papier</string>
<string name="button_share_by_email">Partager par courriel</string>
<string name="button_share_by_sms">Partager par texto</string>
<string name="button_share_clipboard">Presse-papiers</string>
<string name="button_share_contact">Contact</string>
<string name="button_show_map">Afficher la carte</string>
<string name="button_sms">Envoyer SMS</string>
<string name="button_sms">Envoyer un texto</string>
<string name="button_web_search">Recherche Web</string>
<string name="button_wifi">Se connecter au réseau</string>
<string name="contents_contact">Informations de contact</string>
<string name="contents_email">Adresse email</string>
<string name="contents_email">Adresse courriel</string>
<string name="contents_location">Coordonnées géographiques</string>
<string name="contents_phone">Numéro de téléphone</string>
<string name="contents_sms">Adresse SMS</string>
<string name="contents_text">Texte</string>
<string name="contents_text">Texte en clair</string>
<string name="history_clear_one_history_text">Effacer</string>
<string name="history_clear_text">Effacer l\'historique</string>
<string name="history_email_title">Historique de Barcode Scanner</string>
<string name="history_empty">Vide</string>
<string name="history_empty_detail">Aucun code-barre scanné n\'a encore été enregistré</string>
<string name="history_empty_detail">Aucun code-barre balayé n\'a encore été enregistré</string>
<string name="history_send">Envoyer historique</string>
<string name="history_title">Historique</string>
<string name="menu_encode_mecard">Format MECARD</string>
<string name="menu_encode_vcard">Format vCard</string>
<string name="menu_encode_mecard">Utiliser MECARD</string>
<string name="menu_encode_vcard">Utiliser vCard</string>
<string name="menu_help">Aide</string>
<string name="menu_history">Historique</string>
<string name="menu_settings">Paramètres</string>
<string name="menu_share">Partager</string>
<string name="msg_bulk_mode_scanned">Mode lecture en rafale : code-barres scanné et enregistré</string>
<string name="msg_bulk_mode_scanned">Balayage en rafale\u00A0: code-barres balayés et enregistrés</string>
<string name="msg_camera_framework_bug">Désolé, la caméra Android a rencontré un problème. Un redémarrage de l\'appareil est peut-être nécessaire.</string>
<string name="msg_default_format">Format</string>
<string name="msg_default_meta">Métadonnées</string>
<string name="msg_default_mms_subject">Salut</string>
<string name="msg_default_status">Placer un code-barres à l\'intérieur du rectangle pour le scanner.</string>
<string name="msg_default_time">Temps</string>
<string name="msg_default_status">Encadrez un code-barres avec le viseur pour le balayer.</string>
<string name="msg_default_time">Heure</string>
<string name="msg_default_type">Type</string>
<string name="msg_encode_contents_failed">Impossible de créer le code-barres à partir des données fournies.</string>
<string name="msg_encode_contents_failed">Impossible d\'encoder un code-barres à partir des données fournies.</string>
<string name="msg_error">Erreur</string>
<string name="msg_google_books">Google</string>
<string name="msg_google_product">Google</string>
<string name="msg_intent_failed">Désolé, l\'application demandée n\'a pas pu être lancée. Le contenu du code-barres n\'est peut-être pas valable.</string>
<string name="msg_intent_failed">Désolé, l\'application demandée n\'a pas pu être lancée. Le contenu du code-barres est peut-être invalide.</string>
<string name="msg_invalid_value">Valeur invalide</string>
<string name="msg_redirect">Redirection</string>
<string name="msg_sbc_book_not_searchable">Désolé, ce livre est introuvable.</string>
<string name="msg_redirect">Réacheminement</string>
<string name="msg_sbc_book_not_searchable">Désolé, ce livre ne peut pas être cherché.</string>
<string name="msg_sbc_failed">Désolé, la recherche a rencontré un problème.</string>
<string name="msg_sbc_no_page_returned">Page non trouvée</string>
<string name="msg_sbc_no_page_returned">Aucun résultat</string>
<string name="msg_sbc_page">Page</string>
<string name="msg_sbc_results">Résultats</string>
<string name="msg_sbc_searching_book">Recherche du livre\u2026</string>
<string name="msg_sbc_snippet_unavailable">Extrait non disponible</string>
<string name="msg_share_explanation">Vous pouvez partager des données en affichant un code-barres sur votre écran et en le scannant avec un autre téléphone.</string>
<string name="msg_share_text">Ou tapez du texte</string>
<string name="msg_sure">Êtes-vous sûr ?</string>
<string name="msg_share_explanation">Vous pouvez partager des données en affichant un code-barres sur votre écran et en le balayant avec un autre téléphone.</string>
<string name="msg_share_text">Ou tapez du texte et appuyez sur Entrée</string>
<string name="msg_sure">Le voulez-vous vraiment\u00A0?</string>
<string name="msg_unmount_usb">Désolé, la carte SD n\'est pas accessible.</string>
<string name="preferences_actions_title">Quand un code-barres est trouvé\u2026</string>
<string name="preferences_auto_focus_title">Utiliser l\'autofocus</string>
<string name="preferences_auto_open_web_title">Ouvrir des pages Web automatiquement</string>
<string name="preferences_bulk_mode_summary">Scanner et enregistrer plusieurs codes-barres d\'affilée</string>
<string name="preferences_auto_focus_title">Utiliser la mise au point automatique</string>
<string name="preferences_auto_open_web_title">Ouvrir les pages Web automatiquement</string>
<string name="preferences_bulk_mode_summary">Balayer et enregistrer des codes-barres en rafale</string>
<string name="preferences_bulk_mode_title">Mode de lecture en rafale</string>
<string name="preferences_copy_to_clipboard_title">Copier dans le presse-papier</string>
<string name="preferences_custom_product_search_summary" formatted="false">Remplacements : %s = contenu, %f = format, %t = type</string>
<string name="preferences_copy_to_clipboard_title">Copier dans le presse-papiers</string>
<string name="preferences_custom_product_search_summary" formatted="false">Remplacements\u00A0: %s = contenu, %f = format, %t = type</string>
<string name="preferences_custom_product_search_title">URL de recherche personnalisée</string>
<string name="preferences_decode_1D_industrial_title">1D industrielle</string>
<string name="preferences_decode_1D_product_title">1D produit</string>
@ -100,42 +100,44 @@
<string name="preferences_decode_Data_Matrix_title">Data Matrix</string>
<string name="preferences_decode_PDF417_title">PDF417 (β)</string>
<string name="preferences_decode_QR_title">Codes QR</string>
<string name="preferences_device_bug_workarounds_title">Solutions de contournement des bugs de l\'appareil</string>
<string name="preferences_disable_barcode_scene_mode_title">Pas de mode scène code à barres</string>
<string name="preferences_device_bug_workarounds_title">Paliatifs des bogues de l\'appareil</string>
<string name="preferences_disable_barcode_scene_mode_title">Pas de mode scène de code-barres</string>
<string name="preferences_disable_continuous_focus_summary">Utiliser uniquement le mode de mise au point standard</string>
<string name="preferences_disable_continuous_focus_title">Pas de mise au point continue</string>
<string name="preferences_disable_exposure_title">Pas d\'exposition</string>
<string name="preferences_disable_metering_title">Pas de mesure</string>
<string name="preferences_front_light_auto">Automatique</string>
<string name="preferences_front_light_off">Inactif</string>
<string name="preferences_front_light_on">Actif</string>
<string name="preferences_front_light_summary">Allumer la lampe derrière le téléphone quand la lumière ambiante est faible. Peut provoquer des reflets et ne fonctionne pas sur tous les téléphones.</string>
<string name="preferences_front_light_title">Flash</string>
<string name="preferences_front_light_off">Éteinte</string>
<string name="preferences_front_light_on">Allumée</string>
<string name="preferences_front_light_summary">Améliore le balayage lors d\'une faible luminosité sur certains téléphone, mais peut causer un reflet. Ne fonctionne pas sur tous les téléphones.</string>
<string name="preferences_front_light_title">Utiliser la lumière frontale</string>
<string name="preferences_general_title">Paramètres généraux</string>
<string name="preferences_invert_scan_summary">Scanner des codes-barres blancs sur fond noir. Pas disponible sur certains appareils.</string>
<string name="preferences_invert_scan_title">Scan négatif</string>
<string name="preferences_history_summary">Stockez vos scans dans l\'historique</string>
<string name="preferences_history_title">Ajouter à l\'historique</string>
<string name="preferences_invert_scan_summary">Balayer des codes-barres blancs sur fond noir. Non disponible sur certains appareils.</string>
<string name="preferences_invert_scan_title">Balayage négatif</string>
<string name="preferences_name">Paramètres</string>
<string name="preferences_orientation_title">Pas de rotation automatique</string>
<string name="preferences_play_beep_title">Bip</string>
<string name="preferences_remember_duplicates_summary">Enregistrer dans l\'historique les lectures multiples d\'un même code-barres</string>
<string name="preferences_remember_duplicates_title">Enregistrer les doublons</string>
<string name="preferences_result_title">Paramètres d\'un résultat</string>
<string name="preferences_scanning_title">Pendant le scan de codes-barres, décoder\u2026</string>
<string name="preferences_result_title">Paramètres de résultat</string>
<string name="preferences_scanning_title">Pendant le balayage de codes-barres, décoder\u2026</string>
<string name="preferences_search_country">Pays de recherche</string>
<string name="preferences_supplemental_summary">Essayer d\'obtenir plus d\'informations sur le contenu du code-barres</string>
<string name="preferences_supplemental_title">Obtenir plus d\'informations</string>
<string name="preferences_supplemental_title">Obtenir plus d\'infos</string>
<string name="preferences_vibrate_title">Vibreur</string>
<string name="result_address_book">Informations de contact trouvées</string>
<string name="result_calendar">Événement pour l\'agenda trouvé</string>
<string name="result_email_address">Adresse email trouvée</string>
<string name="result_calendar">Événement d\'agenda trouvé</string>
<string name="result_email_address">Adresse courriel trouvée</string>
<string name="result_geo">Coordonnées géographiques trouvées</string>
<string name="result_isbn">Livre trouvé</string>
<string name="result_product">Produit trouvé</string>
<string name="result_sms">Adresse SMS trouvée</string>
<string name="result_tel">Numéro de téléphone trouvé</string>
<string name="result_text">Texte seul trouvé</string>
<string name="result_text">Texte en clair trouvé</string>
<string name="result_uri">URL trouvée</string>
<string name="result_wifi">Configuration de réseau Wi-Fi trouvée</string>
<string name="result_wifi">Configuration WLAN trouvée</string>
<string name="sbc_name">Recherche Google Livres</string>
<string name="wifi_changing_network">Demande de connexion au réseau\u2026</string>
</resources>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">משפר את הסריקה בתאורה נמוכה בטלפונים מסוימים, אך עשוי לגרום לסנוור. לא עובד בכל הטלפונים.</string>
<string name="preferences_front_light_title">השתמש באור הקדמי</string>
<string name="preferences_general_title">הגדרות כלליות</string>
<string name="preferences_history_summary">אחסן הסריקות שלך בהיסטוריה</string>
<string name="preferences_history_title">הוסף להיסטוריה</string>
<string name="preferences_invert_scan_summary">סרוק ברקודים לבן על רקע שחור. לא זמין על התקנים מסוימים.</string>
<string name="preferences_invert_scan_title">היפוך לסרוק</string>
<string name="preferences_name">הגדרות</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">कुछ फोन पर कम रोशनी में स्कैनिंग बढ़ाता है, लेकिन चमक का कारण हो सकता है. सभी फोन पर काम नहीं करता.</string>
<string name="preferences_front_light_title">सामने प्रकाश का उपयोग करें</string>
<string name="preferences_general_title">सामान्य सेटिंग्स</string>
<string name="preferences_history_summary">इतिहास में अपने स्कैन स्टोर</string>
<string name="preferences_history_title">इतिहास में जोड़ें</string>
<string name="preferences_invert_scan_summary">काली पृष्ठभूमि पर सफेद बारकोड के लिए स्कैन करें. कुछ उपकरणों पर उपलब्ध नहीं है.</string>
<string name="preferences_invert_scan_title">स्कैन उलटें</string>
<string name="preferences_name">सेटिंग्स</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Javítja a szkennelést kevés fény mellett néhány telefonon, de csillogást okozhat. Nem minden telefonon működik.</string>
<string name="preferences_front_light_title">Kamera LED használata</string>
<string name="preferences_general_title">Általános beállítások</string>
<string name="preferences_history_summary">Tárolja a beolvasott történelem</string>
<string name="preferences_history_title">Add hozzá a History</string>
<string name="preferences_invert_scan_summary">Scan fehér vonalkódok a fekete háttér. Nem csak egyes eszközöket.</string>
<string name="preferences_invert_scan_title">Invert szkennelés</string>
<string name="preferences_name">Beállítások</string>

View file

@ -23,8 +23,8 @@
<string name="button_book_search">Cari Buku</string>
<string name="button_cancel">Batal</string>
<string name="button_custom_product_search">Pencarian kustom</string>
<string name="button_dial">Panggil nomor</string>
<string name="button_email">Kirim surel</string>
<string name="button_dial">Menghubungi nomor</string>
<string name="button_email">Kirim email</string>
<string name="button_get_directions">Dapatkan petunjuk arah</string>
<string name="button_mms">Kirim MMS</string>
<string name="button_ok">OK</string>
@ -33,7 +33,7 @@
<string name="button_search_book_contents">Cari isi</string>
<string name="button_share_app">Aplikasi</string>
<string name="button_share_bookmark">Bookmark</string>
<string name="button_share_by_email">Bagikan melalui surel</string>
<string name="button_share_by_email">Bagikan melalui email</string>
<string name="button_share_by_sms">Bagikan melalui SMS</string>
<string name="button_share_clipboard">Clipboard</string>
<string name="button_share_contact">Kontak</string>
@ -42,7 +42,7 @@
<string name="button_web_search">Pencarian web</string>
<string name="button_wifi">Hubungkan ke Jaringan</string>
<string name="contents_contact">Informasi kontak</string>
<string name="contents_email">Alamat surel</string>
<string name="contents_email">Alamat email</string>
<string name="contents_location">Koordinat geografis</string>
<string name="contents_phone">Nomor telepon</string>
<string name="contents_sms">Alamat SMS</string>
@ -51,7 +51,7 @@
<string name="history_clear_text">Hapus riwayat</string>
<string name="history_email_title">Riwayat Barcode Scanner</string>
<string name="history_empty">Kosong</string>
<string name="history_empty_detail">Tidak ada scan barcode telah dicatat belum</string>
<string name="history_empty_detail">Tidak ada pemindaian barcode yang pernah dicatat</string>
<string name="history_send">Kirim riwayat</string>
<string name="history_title">Riwayat</string>
<string name="menu_encode_mecard">Gunakan MECARD</string>
@ -61,8 +61,8 @@
<string name="menu_settings">Pengaturan</string>
<string name="menu_share">Bagikan</string>
<string name="msg_bulk_mode_scanned">Bulk mode: barcode sudah dipindai dan disimpan</string>
<string name="msg_camera_framework_bug">Maaf, kamera pada Android mengalami masalah. Anda mungkin perlu me-restart perangkat.</string>
<string name="msg_default_format">Bentuk</string>
<string name="msg_camera_framework_bug">Maaf, kamera mengalami masalah. Anda mungkin perlu me-restart perangkat.</string>
<string name="msg_default_format">Format</string>
<string name="msg_default_meta">Metadata</string>
<string name="msg_default_mms_subject">Hai</string>
<string name="msg_default_status">Letakkan barcode di dalam kotak jendela untuk memindai.</string>
@ -100,40 +100,42 @@
<string name="preferences_decode_Data_Matrix_title">Data Matriks</string>
<string name="preferences_decode_PDF417_title">PDF417 (β)</string>
<string name="preferences_decode_QR_title">QR Codes</string>
<string name="preferences_device_bug_workarounds_title">Perangkat Bug Workarounds</string>
<string name="preferences_disable_barcode_scene_mode_title">Tidak ada modus barcode scene</string>
<string name="preferences_disable_continuous_focus_summary">Gunakan hanya modus fokus standar</string>
<string name="preferences_disable_continuous_focus_title">Tidak ada fokus terus menerus</string>
<string name="preferences_disable_exposure_title">Eksposur ada</string>
<string name="preferences_disable_metering_title">Metering ada</string>
<string name="preferences_device_bug_workarounds_title">Device Bug Workarounds</string>
<string name="preferences_disable_barcode_scene_mode_title">Tidak ada modus tempat kejadian barcode</string>
<string name="preferences_disable_continuous_focus_summary">Hanya gunakan mode fokus standar</string>
<string name="preferences_disable_continuous_focus_title">Jangan gunakan fokus terus menerus</string>
<string name="preferences_disable_exposure_title">Tanpa eksposur</string>
<string name="preferences_disable_metering_title">Tanpa pengukuran</string>
<string name="preferences_front_light_auto">Otomatis</string>
<string name="preferences_front_light_off">Non-aktif</string>
<string name="preferences_front_light_on">Aktif</string>
<string name="preferences_front_light_summary">Meningkatkan scanning dalam cahaya rendah pada beberapa ponsel, namun dapat menyebabkan silau. Tidak bekerja pada semua ponsel.</string>
<string name="preferences_front_light_summary">Meningkatkan pemindaian dalam cahaya rendah pada beberapa ponsel, namun dapat menyebabkan silau. Tidak dapat bekerja pada semua ponsel.</string>
<string name="preferences_front_light_title">Gunakan lampu depan</string>
<string name="preferences_general_title">Pengaturan umum</string>
<string name="preferences_history_summary">Simpan hasil pemindaian Anda dalam riwayat</string>
<string name="preferences_history_title">Tambahkan ke riwayat</string>
<string name="preferences_invert_scan_summary">Memindai barcode putih pada latar belakang hitam. Tidak tersedia pada beberapa perangkat.</string>
<string name="preferences_invert_scan_title">Balikkan memindai</string>
<string name="preferences_invert_scan_title">Membalikkan pemindaian</string>
<string name="preferences_name">Pengaturan</string>
<string name="preferences_orientation_title">Tidak ada rotasi otomatis</string>
<string name="preferences_play_beep_title">Beep</string>
<string name="preferences_orientation_title">Jangan rotasi otomatis</string>
<string name="preferences_play_beep_title">Bunyi</string>
<string name="preferences_remember_duplicates_summary">Simpan beberapa pindaian dari barcode yang sama di dalam Riwayat</string>
<string name="preferences_remember_duplicates_title">Ingat duplikasi</string>
<string name="preferences_result_title">Hasil pengaturan</string>
<string name="preferences_scanning_title">Ketika memindai barcode, decode\u2026</string>
<string name="preferences_search_country">Pencarian negara</string>
<string name="preferences_search_country">Pilih negara</string>
<string name="preferences_supplemental_summary">Mencoba mendapatkan beberapa informasi mengenai isi barcode</string>
<string name="preferences_supplemental_title">Ambil informasi lebih lanjut</string>
<string name="preferences_vibrate_title">Bergetar</string>
<string name="result_address_book">Informasi kontak ditemukan</string>
<string name="result_calendar">Kalendar acara ditemukan</string>
<string name="result_email_address">Alamat surel ditemukan</string>
<string name="result_email_address">Alamat email ditemukan</string>
<string name="result_geo">Koordinat geografis ditemukan</string>
<string name="result_isbn">Buku ditemukan</string>
<string name="result_product">Produk ditemukan</string>
<string name="result_sms">Alamat SMS ditemukan</string>
<string name="result_tel">Nomor telepon ditemukan</string>
<string name="result_text">Teks biasa ditemukan</string>
<string name="result_text">Teks ditemukan</string>
<string name="result_uri">URL ditemukan</string>
<string name="result_wifi">Konfigurasi WLAN ditemukan</string>
<string name="sbc_name">Pencarian Google Book</string>

View file

@ -77,7 +77,7 @@
<string name="msg_redirect">Inoltra</string>
<string name="msg_sbc_book_not_searchable">Spiacenti, questo libro non è ricercabile.</string>
<string name="msg_sbc_failed">Spiacenti, la ricerca ha avuto un problema.</string>
<string name="msg_sbc_no_page_returned">Nessuna pagina restitiuta</string>
<string name="msg_sbc_no_page_returned">Nessuna pagina restituita</string>
<string name="msg_sbc_page">Pagina</string>
<string name="msg_sbc_results">Risultati</string>
<string name="msg_sbc_searching_book">Ricerca libro\u2026</string>
@ -97,7 +97,7 @@
<string name="preferences_decode_1D_industrial_title">1D industriali</string>
<string name="preferences_decode_1D_product_title">1D prodotto</string>
<string name="preferences_decode_Aztec_title">Aztec</string>
<string name="preferences_decode_Data_Matrix_title">Matrice Dati</string>
<string name="preferences_decode_Data_Matrix_title">Data Matrix</string>
<string name="preferences_decode_PDF417_title">PDF417 (β)</string>
<string name="preferences_decode_QR_title">Codici QR</string>
<string name="preferences_device_bug_workarounds_title">Soluzioni alternative dispositivo Bug</string>
@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Migliora la scansione con poca luminosità su alcuni telefoni, ma può provocare abbagliamento. Non funziona su tutti i telefoni.</string>
<string name="preferences_front_light_title">Usa luce frontale</string>
<string name="preferences_general_title">Impostazioni generali</string>
<string name="preferences_history_summary">Mantieni le tue scansioni nella Cronologia</string>
<string name="preferences_history_title">Aggiungi alla Cronologia</string>
<string name="preferences_invert_scan_summary">Scansione dei codici a barre bianche su sfondo nero. Non disponibile su alcuni dispositivi.</string>
<string name="preferences_invert_scan_title">Invertire la scansione</string>
<string name="preferences_name">Impostazioni</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">スキャン時のライトを制御します</string>
<string name="preferences_front_light_title">ライトの制御</string>
<string name="preferences_general_title">一般設定</string>
<string name="preferences_history_summary">歴史の中のあなたのスキャンを保管してください</string>
<string name="preferences_history_title">歴史に追加</string>
<string name="preferences_invert_scan_summary">黒地に白のバーコードをスキャン。一部のデバイスでは使用できません。</string>
<string name="preferences_invert_scan_title">スキャンを反転</string>
<string name="preferences_name">設定</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">특정 기기에서는 어두운 환경에서의 스캐닝 기능을 향상 시키지만 너무 밝을 수도 있습니다. 모든 기기에서 작동되지 않습니다.</string>
<string name="preferences_front_light_title">플래시 사용하기</string>
<string name="preferences_general_title">일반 설정</string>
<string name="preferences_history_summary">역사에서 스캔을 저장</string>
<string name="preferences_history_title">역사에 추가</string>
<string name="preferences_invert_scan_summary">검정 바탕에 흰색 바코드에 대한 스캔. 일부 장치에서 사용할 수 없습니다.</string>
<string name="preferences_invert_scan_title">스캔 반전</string>
<string name="preferences_name">설정</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Verbetert het scannen bij weinig licht bij sommige telefoons, maar kan schittering veroorzaken. Werkt niet op alle telefoons.</string>
<string name="preferences_front_light_title">Flitser gebruiken</string>
<string name="preferences_general_title">Algemene instellingen</string>
<string name="preferences_history_summary">Bewaar uw scans in de Geschiedenis</string>
<string name="preferences_history_title">Toevoegen aan Geschiedenis</string>
<string name="preferences_invert_scan_summary">Scan naar witte barcodes op een zwarte achtergrond. Niet beschikbaar op sommige apparaten.</string>
<string name="preferences_invert_scan_title">Scan omkeren</string>
<string name="preferences_name">Instellingen</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Polepsza skanowanie przy małej ilości światła w niektórych telefonach, ale może powodować odbłysk. Nie działa na wszystkich telefonach.</string>
<string name="preferences_front_light_title">Używaj lampy frontowej</string>
<string name="preferences_general_title">Ustawienia ogólne</string>
<string name="preferences_history_summary">Przechowywanie skanów w historii</string>
<string name="preferences_history_title">Dodaj do historii</string>
<string name="preferences_invert_scan_summary">Skanowanie białych kodów kreskowych na czarnym tle. Nie dostępne w niektórych urządzeniach.</string>
<string name="preferences_invert_scan_title">Odwróć skanowania</string>
<string name="preferences_name">Ustawienia</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Melhora a leitura em luz fraca em alguns telefones, mas pode causar clarões. Não disponível em certos dispositivos.</string>
<string name="preferences_front_light_title">Usar luz da frente</string>
<string name="preferences_general_title">Definições Gerais</string>
<string name="preferences_history_summary">Armazene seus scans em História</string>
<string name="preferences_history_title">Adicionar à História</string>
<string name="preferences_invert_scan_summary">Procurar por códigos de barras brancos em fundo preto. Não disponível em certos dispositivos.</string>
<string name="preferences_invert_scan_title">Inverter leitura</string>
<string name="preferences_name">Definições</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Îmbunătățește scanarea în lumină redusă, dar poate cauza strălucire excesivă. Nu funcționează la toate aparatele.</string>
<string name="preferences_front_light_title">Folosește lumina frontală</string>
<string name="preferences_general_title">Configurări generale</string>
<string name="preferences_history_summary">Păstrați scanate în istorie</string>
<string name="preferences_history_title">Adauga la Istorie</string>
<string name="preferences_invert_scan_summary">Scanează coduri de bară albe pe fundal negru. Indisponibil pe unele aparate.</string>
<string name="preferences_invert_scan_title">Scanare în negativ</string>
<string name="preferences_name">Configurări</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Улучшает распознавание в условиях низкой освещенности, но может вызвать блики. Работает не на всех устройствах.</string>
<string name="preferences_front_light_title">Фонарик</string>
<string name="preferences_general_title">Общие настройки</string>
<string name="preferences_history_summary">Храните ваши сканы в истории</string>
<string name="preferences_history_title">Добавить в истории</string>
<string name="preferences_invert_scan_summary">Сканирование белых штрих-кодов на черном фоне. Не работает на некоторых устройствах.</string>
<string name="preferences_invert_scan_title">Инвертировать</string>
<string name="preferences_name">Настройки</string>

View file

@ -33,7 +33,7 @@
<string name="button_search_book_contents">Vyhľadať obsah</string>
<string name="button_share_app">Aplikácia</string>
<string name="button_share_bookmark">Záložka</string>
<string name="button_share_by_email">Zdieľať cez e-mail</string>
<string name="button_share_by_email">Zdieľať cez email</string>
<string name="button_share_by_sms">Zdieľať cez SMS</string>
<string name="button_share_clipboard">Schránka</string>
<string name="button_share_contact">Kontakt</string>
@ -42,14 +42,14 @@
<string name="button_web_search">Hľadať na webe</string>
<string name="button_wifi">Pripojiť sa sieti</string>
<string name="contents_contact">Informácie o kontakte</string>
<string name="contents_email">E-mailová adresa</string>
<string name="contents_email">Emailová adresa</string>
<string name="contents_location">Geografické súradnice</string>
<string name="contents_phone">Telefónne číslo</string>
<string name="contents_sms">SMS adresa</string>
<string name="contents_text">Obyčajný text</string>
<string name="history_clear_one_history_text">Vymazať</string>
<string name="history_clear_text">Vymazať históriu</string>
<string name="history_email_title">História Barcode Scanneru</string>
<string name="history_email_title">História Barcode Scannera</string>
<string name="history_empty">Prázdna</string>
<string name="history_empty_detail">Žiadne čiarové kódy neboli zaznamenané</string>
<string name="history_send">Poslať históriu</string>
@ -65,18 +65,18 @@
<string name="msg_default_format">Formát</string>
<string name="msg_default_meta">Metadáta</string>
<string name="msg_default_mms_subject">Ahoj</string>
<string name="msg_default_status">Umiestnite čiarový kód do vnútra obdĺžnika hľadáčiku pre skenovanie.</string>
<string name="msg_default_status">Umiestnite čiarový kód do vnútra obdĺžnika hľadáčiku pre skenovanie</string>
<string name="msg_default_time">Čas</string>
<string name="msg_default_type">Typ</string>
<string name="msg_encode_contents_failed">Nie je možné zakódovať čiarový kód z poskytnutých údajov.</string>
<string name="msg_encode_contents_failed">Nie je možné zakódovať čiarový kód z poskytnutých údajov</string>
<string name="msg_error">Chyba</string>
<string name="msg_google_books">Google</string>
<string name="msg_google_product">Google</string>
<string name="msg_intent_failed">Ospravedlňujeme sa, požadovaná aplikácia nemohla byť spustená. Obsah čiarového kódu je možno neplatný.</string>
<string name="msg_invalid_value">Neplatná hodnota</string>
<string name="msg_redirect">Presmerovať</string>
<string name="msg_sbc_book_not_searchable">Ospravedlňujeme sa, táto kniha nie je prehliadateľná.</string>
<string name="msg_sbc_failed">Ospravedlňujeme sa, vyhľadávanie narazilo na problém.</string>
<string name="msg_sbc_book_not_searchable">Ospravedlňujeme sa, táto kniha nie je prehliadateľná</string>
<string name="msg_sbc_failed">Ospravedlňujeme sa, vyhľadávanie narazilo na problém</string>
<string name="msg_sbc_no_page_returned">Nenašla sa žiadna stránka</string>
<string name="msg_sbc_page">Stránka</string>
<string name="msg_sbc_results">Výsledky</string>
@ -85,10 +85,10 @@
<string name="msg_share_explanation">Môžete zdieľať dáta zobrazením čiarového kódu na displeji vášho zariadenia a jeho zoskenovaním iným zariadením</string>
<string name="msg_share_text">Alebo zadajte nejaký text</string>
<string name="msg_sure">Ste si istí?</string>
<string name="msg_unmount_usb">Ospravedlňujeme sa, SD karta nie je prístupná.</string>
<string name="msg_unmount_usb">Ospravedlňujeme sa, SD karta nie je prístupná</string>
<string name="preferences_actions_title">Pri zistení čiarového kódu</string>
<string name="preferences_auto_focus_title">Použiť automatické zaostrenie</string>
<string name="preferences_auto_open_web_title">Otvorte webové stránky automaticky</string>
<string name="preferences_auto_open_web_title">Otvor webové stránky automaticky</string>
<string name="preferences_bulk_mode_summary">Skenovať a ukladať veľa čiarových kódov bez prerušenia</string>
<string name="preferences_bulk_mode_title">Hromadný režim skenovania</string>
<string name="preferences_copy_to_clipboard_title">Kopírovať do schránky</string>
@ -102,7 +102,7 @@
<string name="preferences_decode_QR_title">QR kódy</string>
<string name="preferences_device_bug_workarounds_title">Možné chyby zariadenia</string>
<string name="preferences_disable_barcode_scene_mode_title">Bez scénického režimu čiarového kódu</string>
<string name="preferences_disable_continuous_focus_summary">Použiť iba štandardné zaostrenie.</string>
<string name="preferences_disable_continuous_focus_summary">Použiť iba štandardné zaostrenie</string>
<string name="preferences_disable_continuous_focus_title">Bez nepretržitého zaostrovania</string>
<string name="preferences_disable_exposure_title">Bez expozície</string>
<string name="preferences_disable_metering_title">Bez úpravy jasu</string>
@ -112,7 +112,9 @@
<string name="preferences_front_light_summary">Použiť prisvetlenie</string>
<string name="preferences_front_light_title">Použiť predné svetlo</string>
<string name="preferences_general_title">Všeobecné nastavenia</string>
<string name="preferences_invert_scan_summary">Skenovať biele čiarové kódy na čiernom pozadí. Nie je k dispozícii na všetkých zariadeniach.</string>
<string name="preferences_history_summary">Uložiť si skeny v histórii</string>
<string name="preferences_history_title">Pridať do histórie</string>
<string name="preferences_invert_scan_summary">Skenovať biele čiarové kódy na čiernom pozadí. Nie je k dispozícii na všetkých zariadeniach</string>
<string name="preferences_invert_scan_title">Invertované skenovanie</string>
<string name="preferences_name">Nastavenia</string>
<string name="preferences_orientation_title">Neotáčať automaticky</string>
@ -127,7 +129,7 @@
<string name="preferences_vibrate_title">Vibrovať</string>
<string name="result_address_book">Nájdená informácia o kontakte</string>
<string name="result_calendar">Nájdená udalosť kalendára</string>
<string name="result_email_address">Nájdená e-mailová adresa</string>
<string name="result_email_address">Nájdená emailová adresa</string>
<string name="result_geo">Nájdená zemepisná súradnica</string>
<string name="result_isbn">Nájdená kniha</string>
<string name="result_product">Nájdený tovar</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Izboljša branje pri slabi svetlobi na nekaterih telefonih, a lahko povzroči blesk. Ne deluje na vseh telefonih.</string>
<string name="preferences_front_light_title">Uporabite sprednjo luč</string>
<string name="preferences_general_title">Splošne nastavitve</string>
<string name="preferences_history_summary">Shranjevanje skeniranih dokumentov v zgodovini</string>
<string name="preferences_history_title">Dodaj v zgodovino</string>
<string name="preferences_invert_scan_summary">Scan za beli črtne kode na črni podlagi. Ni na voljo na nekaterih napravah.</string>
<string name="preferences_invert_scan_title">Obrni skeniranje</string>
<string name="preferences_name">Nastavitve</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Förbättrar inskanning i svag belysing på vissa telefoner, men kan orsaka bländning. Ej tillgängligt på vissa enheter.</string>
<string name="preferences_front_light_title">Använd frontljus</string>
<string name="preferences_general_title">Grundläggande inställningar</string>
<string name="preferences_history_summary">Lagra dina skanningar i historia</string>
<string name="preferences_history_title">Lägg till Historia</string>
<string name="preferences_invert_scan_summary">Skanna in vita streckkoder mot svart bakgrund. Ej tillgängligt på vissa enheter. </string>
<string name="preferences_invert_scan_title">Invertera inskanning</string>
<string name="preferences_name">Inställningar</string>

View file

@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2014 ZXing authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<string name="app_picker_name">แอพพลิเคชั่น</string>
<string name="bookmark_picker_name">บุ๊คมาร์ก</string>
<string name="button_add_calendar">เพิ่มไปยังปฏิทิน</string>
<string name="button_add_contact">เพิ่มผู้ติดต่อ</string>
<string name="button_book_search">ค้นหาหนังสือ</string>
<string name="button_cancel">ยกเลิก</string>
<string name="button_custom_product_search">ค้นหาแบบกำหนดเอง</string>
<string name="button_dial">เรียกเลขหมาย</string>
<string name="button_email">ส่งอีเมล</string>
<string name="button_get_directions">รับข้อมูลเส้นทาง</string>
<string name="button_mms">ส่ง MMS</string>
<string name="button_ok">ตกลง</string>
<string name="button_open_browser">เปิดเบราว์เซอร์</string>
<string name="button_product_search">ค้นหาสินค้า</string>
<string name="button_search_book_contents">ค้นหาเนื้อหา</string>
<string name="button_share_app">แอพพลิเคชั่น</string>
<string name="button_share_bookmark">บุ๊คมาร์ก</string>
<string name="button_share_by_email">แบ่งปันผ่านอีเมล</string>
<string name="button_share_by_sms">แบ่งปันผ่าน SMS</string>
<string name="button_share_clipboard">คลิปบอร์ด</string>
<string name="button_share_contact">ผู้ติดต่อ</string>
<string name="button_show_map">แสดงแผนที่</string>
<string name="button_sms">ส่ง SMS</string>
<string name="button_web_search">ค้นหาเว็บ</string>
<string name="button_wifi">เชื่อมต่อกับเครือข่าย</string>
<string name="contents_contact">ข้อมูลผู้ติดต่อ</string>
<string name="contents_email">ที่อยู่อีเมล</string>
<string name="contents_location">พิกัดทางภูมิศาสตร์</string>
<string name="contents_phone">เบอร์โทรศัพท์</string>
<string name="contents_sms">ที่อยู่ SMS</string>
<string name="contents_text">ข้อความธรรมดา</string>
<string name="history_clear_one_history_text">ล้าง</string>
<string name="history_clear_text">ล้างประวัติ</string>
<string name="history_email_title">ประวัติ Barcode Scanner</string>
<string name="history_empty">ว่าง</string>
<string name="history_empty_detail">ไม่มีบาร์โค้ดที่ถูกบันทึกไว้</string>
<string name="history_send">ส่งประวัติ</string>
<string name="history_title">ประวัติ</string>
<string name="menu_encode_mecard">ใช้ MECARD</string>
<string name="menu_encode_vcard">ใช้ vCard</string>
<string name="menu_help">ช่วยเหลือ</string>
<string name="menu_history">ประวัติ</string>
<string name="menu_settings">การตั้งค่า</string>
<string name="menu_share">แบ่งปัน</string>
<string name="msg_bulk_mode_scanned">โหมดเป็นกลุ่ม: บาร์โค้ดที่สแกนและบันทึกไว้</string>
<string name="msg_camera_framework_bug">ขออภัย พบปัญหาของกล้อง Android คุณอาจจะต้องรีสตาร์ทอุปกรณ์</string>
<string name="msg_default_format">รูปแบบ</string>
<string name="msg_default_meta">ข้อมูลเมตา</string>
<string name="msg_default_mms_subject">สวัสดี</string>
<string name="msg_default_status">วางบาร์โค้ดภายในสี่เหลี่ยมผืนผ้าที่ช่องมองภาพเพื่อสแกน</string>
<string name="msg_default_time">เวลา</string>
<string name="msg_default_type">ชนิด</string>
<string name="msg_encode_contents_failed">ไม่สามารถเข้ารหัสบาร์โค้ดจากข้อมูลที่มี</string>
<string name="msg_error">ข้อผิดพลาด</string>
<string name="msg_google_books">Google</string>
<string name="msg_google_product">Google</string>
<string name="msg_intent_failed">ขออภัย แอพพลิเคชั่นที่ร้องขอไม่สามารถเปิดใช้ได้ เนื้อหาบาร์โค้ดอาจจะไม่ถูกต้อง</string>
<string name="msg_invalid_value">ค่าไม่ถูกต้อง</string>
<string name="msg_redirect">เปลี่ยนเส้นทาง</string>
<string name="msg_sbc_book_not_searchable">ขออภัย ไม่สามารถค้นหาหนังสือเล่มนี้ได้</string>
<string name="msg_sbc_failed">ขออภัย พบปัญหาในการค้นหา</string>
<string name="msg_sbc_no_page_returned">ไม่มีหน้าที่ส่งกลับมา</string>
<string name="msg_sbc_page">หน้า</string>
<string name="msg_sbc_results">ผลลัพธ์</string>
<string name="msg_sbc_searching_book">กำลังค้นหาหนังสือ\u2026</string>
<string name="msg_sbc_snippet_unavailable">ส่วนย่อยไม่สามารถใช้ได้</string>
<string name="msg_share_explanation">คุณสามารถแบ่งปันข้อมูลโดยการแสดงบาร์โค้ดบนหน้าจอของคุณและสแกนด้วยโทรศัพท์อื่น</string>
<string name="msg_share_text">หรือพิมพ์ข้อความบางอย่างและกด Enter</string>
<string name="msg_sure">คุณแน่ใจหรือไม่?</string>
<string name="msg_unmount_usb">ขออภัย ไม่สามารถเข้าถึง SD การ์ดได้</string>
<string name="preferences_actions_title">เมื่อพบบาร์โค้ด\u2026</string>
<string name="preferences_auto_focus_title">ใช้ระบบโฟกัสอัตโนมัติ</string>
<string name="preferences_auto_open_web_title">เปิดหน้าเว็บโดยอัตโนมัติ</string>
<string name="preferences_bulk_mode_summary">สแกนและบันทึกบาร์โค้ดเป็นจำนวนมากอย่างต่อเนื่อง</string>
<string name="preferences_bulk_mode_title">โหมดการสแกนเป็นกลุ่ม</string>
<string name="preferences_copy_to_clipboard_title">คัดลอกไปยังคลิปบอร์ด</string>
<string name="preferences_custom_product_search_summary" formatted="false">การแทนที่: %s = เนื้อหา, %f = รูปแบบ, %t = ชนิด</string>
<string name="preferences_custom_product_search_title">ค้นหาตาม URL ที่กำหนดเอง</string>
<string name="preferences_decode_1D_industrial_title">1D อุตสาหกรรม</string>
<string name="preferences_decode_1D_product_title">1D สินค้า</string>
<string name="preferences_decode_Aztec_title">แอซเท็ก</string>
<string name="preferences_decode_Data_Matrix_title">ข้อมูลเมทริกซ์</string>
<string name="preferences_decode_PDF417_title">PDF417 (β)</string>
<string name="preferences_decode_QR_title">คิวอาร์โค้ด</string>
<string name="preferences_device_bug_workarounds_title">วิธีการแก้ปัญหาจุดบกพร่องของอุปกรณ์</string>
<string name="preferences_disable_barcode_scene_mode_title">ไม่มีโหมดฉากบาร์โค้ด</string>
<string name="preferences_disable_continuous_focus_summary">ใช้โหมดโฟกัสมาตรฐานเท่านั้น</string>
<string name="preferences_disable_continuous_focus_title">ไม่มีการโฟกัสอย่างต่อเนื่อง</string>
<string name="preferences_disable_exposure_title">ไม่มีการการเปิดรับแสง</string>
<string name="preferences_disable_metering_title">ไม่มีการวัดแสง</string>
<string name="preferences_front_light_auto">อัตโนมัติ</string>
<string name="preferences_front_light_off">ปิด</string>
<string name="preferences_front_light_on">เปิด</string>
<string name="preferences_front_light_summary">ปรับปรุงการสแกนในที่มีแสงน้อยบนโทรศัพท์บางรุ่น แต่อาจก่อให้เกิดแสงจ้า ไม่ได้ทำงานบนโทรศัพท์ทุกรุ่น</string>
<string name="preferences_front_light_title">ใช้แฟลช</string>
<string name="preferences_general_title">การตั้งค่าทั่วไป</string>
<string name="preferences_history_summary">เก็บภาพสแกนในประวัติศาสตร์</string>
<string name="preferences_history_title">เพิ่มลงในประวัติศาสตร์</string>
<string name="preferences_invert_scan_summary">สแกนบาร์โค้ดสีขาวบนพื้นหลังสีดำ ไม่สามารถใช้ได้บนบางอุปกรณ์</string>
<string name="preferences_invert_scan_title">สลับการสแกน</string>
<string name="preferences_name">การตั้งค่า</string>
<string name="preferences_orientation_title">ไม่มีการหมุนอัตโนมัติ</string>
<string name="preferences_play_beep_title">เสียงเตือน</string>
<string name="preferences_remember_duplicates_summary">จัดเก็บการสแกนบาร์โค้ดที่เหมือนกันหลายครั้งในประวัติ</string>
<string name="preferences_remember_duplicates_title">จดจำรายการที่ซ้ำกัน</string>
<string name="preferences_result_title">ผลการตั้งค่า</string>
<string name="preferences_scanning_title">เมื่อสแกนหาบาร์โค้ด, ถอดรหัส\u2026</string>
<string name="preferences_search_country">ประเทศที่ค้นหา</string>
<string name="preferences_supplemental_summary">พยายามที่จะเรียกข้อมูลเพิ่มเติมเกี่ยวกับเนื้อหาของบาร์โค้ด</string>
<string name="preferences_supplemental_title">เรียกข้อมูลเพิ่มเติม</string>
<string name="preferences_vibrate_title">การสั่น</string>
<string name="result_address_book">พบข้อมูลผู้ติดต่อ</string>
<string name="result_calendar">พบเหตุการณ์ในปฏิทิน</string>
<string name="result_email_address">พบที่อยู่อีเมล</string>
<string name="result_geo">พบพิกัดทางภูมิศาสตร์</string>
<string name="result_isbn">พบหนังสือ</string>
<string name="result_product">พบสินค้า</string>
<string name="result_sms">พบที่อยู่ SMS</string>
<string name="result_tel">พบเบอร์โทรศัพท์</string>
<string name="result_text">พบข้อความธรรมดา</string>
<string name="result_uri">พบ URL</string>
<string name="result_wifi">พบการกำหนดค่า WLAN</string>
<string name="sbc_name">ค้นหาหนังสือจาก Google</string>
<string name="wifi_changing_network">กำลังร้องขอการเชื่อมต่อกับเครือข่าย\u2026</string>
</resources>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Bazı telefonlarda düşük ışıkta taramayı iyileştirir, ancak parlamaya neden olabilir. Tüm telefonlarda sonuç vermez.</string>
<string name="preferences_front_light_title">Ön ışığı kullan</string>
<string name="preferences_general_title">Genel ayarlar</string>
<string name="preferences_history_summary">Tarih içinde taramaları saklayın</string>
<string name="preferences_history_title">Tarih ekle</string>
<string name="preferences_invert_scan_summary">Siyah zemin üzerine beyaz barkod tarama. Bazı cihazlar mevcut değildir.</string>
<string name="preferences_invert_scan_title">Tarama haricindekileri</string>
<string name="preferences_name">Ayarlar</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">Покращує розпізнавання при поганому освітлення, але може викликати відблиски. Працює не на всіх пристроях.</string>
<string name="preferences_front_light_title">Ліхтарик</string>
<string name="preferences_general_title">Загальні налаштування</string>
<string name="preferences_history_summary">Зберігайте ваші скани в історії</string>
<string name="preferences_history_title">Додати в історії</string>
<string name="preferences_invert_scan_summary">Сканування білих штрих-кодів на чорному фоні. Не працює на деяких пристроях.</string>
<string name="preferences_invert_scan_title">Інвертувати</string>
<string name="preferences_name">Налаштування</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">前灯可用时,打开前灯</string>
<string name="preferences_front_light_title">前灯</string>
<string name="preferences_general_title">一般设置</string>
<string name="preferences_history_summary">存储在历史的扫描</string>
<string name="preferences_history_title">加入历史</string>
<string name="preferences_invert_scan_summary">黑色背景上的白色条形码扫描。在某些设备上。</string>
<string name="preferences_invert_scan_title">反向扫描</string>
<string name="preferences_name">设置</string>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_summary">改善在低光源的環境下掃描的成功率,但有可能造成過度曝光的現象</string>
<string name="preferences_front_light_title">使用前光源</string>
<string name="preferences_general_title">一般設定</string>
<string name="preferences_history_summary">存儲在歷史的掃描</string>
<string name="preferences_history_title">加入歷史</string>
<string name="preferences_invert_scan_summary">掃描黑底白字的條碼(某些設備上無法使用)</string>
<string name="preferences_invert_scan_title">黑底白字掃描</string>
<string name="preferences_name">設定</string>

View file

@ -14,8 +14,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<string-array name="country_codes">
<resources xmlns:tools="http://schemas.android.com/tools">
<string-array name="country_codes" tools:ignore="MissingTranslation">
<item>-</item>
<item>AR</item>
<item>AU</item>
@ -49,7 +49,7 @@
<item>TW</item>
<item>US</item>
</string-array>
<string-array name="preferences_front_light_values">
<string-array name="preferences_front_light_values" tools:ignore="MissingTranslation">
<item>ON</item>
<item>AUTO</item>
<item>OFF</item>

View file

@ -112,6 +112,8 @@
<string name="preferences_front_light_off">Off</string>
<string name="preferences_front_light_on">On</string>
<string name="preferences_general_title">General settings</string>
<string name="preferences_history_summary">Store your scans in History</string>
<string name="preferences_history_title">Add to History</string>
<string name="preferences_invert_scan_title">Invert scan</string>
<string name="preferences_invert_scan_summary">Scan for white barcodes on black background. Not available on some devices.</string>
<string name="preferences_name">Settings</string>

View file

@ -63,6 +63,11 @@
android:defaultValue="false"
android:title="@string/preferences_remember_duplicates_title"
android:summary="@string/preferences_remember_duplicates_summary"/>
<CheckBoxPreference
android:key="preferences_history"
android:defaultValue="true"
android:title="@string/preferences_history_title"
android:summary="@string/preferences_history_summary"/>
<CheckBoxPreference
android:key="preferences_supplemental"
android:defaultValue="true"

View file

@ -136,8 +136,6 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
setContentView(R.layout.capture);
hasSurface = false;
historyManager = new HistoryManager(this);
historyManager.trimHistory();
inactivityTimer = new InactivityTimer(this);
beepManager = new BeepManager(this);
ambientLightManager = new AmbientLightManager(this);
@ -148,6 +146,10 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
@Override
protected void onResume() {
super.onResume();
// historyManager must be initialized here to update the history preference
historyManager = new HistoryManager(this);
historyManager.trimHistory();
// CameraManager must be initialized here, not in onCreate(). This is necessary because we don't
// want to open the camera driver and measure the screen size if we're going to show the help on
@ -196,6 +198,8 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
&& (intent == null || intent.getBooleanExtra(Intents.Scan.SAVE_HISTORY, true));
source = IntentSource.NONE;
sourceUrl = null;
scanFromWebPageManager = null;
decodeFormats = null;
characterSet = null;
@ -218,7 +222,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
cameraManager.setManualFramingRect(width, height);
}
}
if (intent.hasExtra(Intents.Scan.CAMERA_ID)) {
int cameraId = intent.getIntExtra(Intents.Scan.CAMERA_ID, -1);
if (cameraId >= 0) {
@ -292,6 +296,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
ambientLightManager.stop();
beepManager.close();
cameraManager.closeDriver();
//historyManager = null; // Keep for onActivityResult
if (!hasSurface) {
SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
SurfaceHolder surfaceHolder = surfaceView.getHolder();
@ -678,6 +683,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
if (scanFromWebPageManager != null && scanFromWebPageManager.isScanFromWebPage()) {
String replyURL = scanFromWebPageManager.buildReplyURL(rawResult, resultHandler);
scanFromWebPageManager = null;
sendReplyMessage(R.id.launch_product_query, replyURL, resultDurationMS);
}

View file

@ -80,7 +80,7 @@ public final class Intents {
* Example: "EAN_13,EAN_8,QR_CODE". This overrides {@link #MODE}.
*/
public static final String FORMATS = "SCAN_FORMATS";
/**
* Optional parameter to specify the id of the camera from which to recognize barcodes.
* Overrides the default camera that would otherwise would have been selected.

View file

@ -42,6 +42,7 @@ public final class PreferencesActivity extends Activity {
public static final String KEY_FRONT_LIGHT_MODE = "preferences_front_light_mode";
public static final String KEY_BULK_MODE = "preferences_bulk_mode";
public static final String KEY_REMEMBER_DUPLICATES = "preferences_remember_duplicates";
public static final String KEY_ENABLE_HISTORY = "preferences_history";
public static final String KEY_SUPPLEMENTAL = "preferences_supplemental";
public static final String KEY_AUTO_FOCUS = "preferences_auto_focus";
public static final String KEY_INVERT_SCAN = "preferences_invert_scan";

View file

@ -76,8 +76,6 @@ final class CameraConfigurationManager {
initializeTorch(parameters, prefs, safeMode);
CameraConfigurationUtils.setBestPreviewFPS(parameters);
CameraConfigurationUtils.setFocus(
parameters,
prefs.getBoolean(PreferencesActivity.KEY_AUTO_FOCUS, true),
@ -102,6 +100,9 @@ final class CameraConfigurationManager {
}
parameters.setPreviewSize(cameraResolution.x, cameraResolution.y);
Log.i(TAG, "Final camera parameters: " + parameters.flatten());
camera.setParameters(parameters);
Camera.Parameters afterParameters = camera.getParameters();
@ -126,7 +127,7 @@ final class CameraConfigurationManager {
if (camera != null) {
Camera.Parameters parameters = camera.getParameters();
if (parameters != null) {
String flashMode = camera.getParameters().getFlashMode();
String flashMode = parameters.getFlashMode();
return flashMode != null &&
(Camera.Parameters.FLASH_MODE_ON.equals(flashMode) ||
Camera.Parameters.FLASH_MODE_TORCH.equals(flashMode));

View file

@ -52,7 +52,7 @@ public final class CameraManager {
private Rect framingRectInPreview;
private boolean initialized;
private boolean previewing;
private int requestedCameraId = -1;
private int requestedCameraId = OpenCameraInterface.NO_REQUESTED_CAMERA;
private int requestedFramingRectWidth;
private int requestedFramingRectHeight;
/**
@ -76,13 +76,8 @@ public final class CameraManager {
public synchronized void openDriver(SurfaceHolder holder) throws IOException {
Camera theCamera = camera;
if (theCamera == null) {
if (requestedCameraId >= 0) {
theCamera = OpenCameraInterface.open(requestedCameraId);
} else {
theCamera = OpenCameraInterface.open();
}
theCamera = OpenCameraInterface.open(requestedCameraId);
if (theCamera == null) {
throw new IOException();
}
@ -280,11 +275,7 @@ public final class CameraManager {
* @param cameraId camera ID of the camera to use. A negative value means "no preference".
*/
public synchronized void setManualCameraId(int cameraId) {
if (initialized) {
throw new IllegalStateException();
} else {
requestedCameraId = cameraId;
}
requestedCameraId = cameraId;
}
/**

View file

@ -20,7 +20,7 @@ import android.content.SharedPreferences;
import com.google.zxing.client.android.PreferencesActivity;
/**
* Enumerates settings of the prefernce controlling the front light.
* Enumerates settings of the preference controlling the front light.
*/
public enum FrontLightMode {

View file

@ -26,11 +26,14 @@ public final class OpenCameraInterface {
private OpenCameraInterface() {
}
/** For {@link #open(int)}, means no preference for which camera to open. */
public static final int NO_REQUESTED_CAMERA = -1;
/**
* Opens the requested camera with {@link Camera#open(int)}, if one exists.
*
* @param cameraId camera ID of the camera to use. A negative value means "no preference"
* @param cameraId camera ID of the camera to use. A negative value
* or {@link #NO_REQUESTED_CAMERA} means "no preference"
* @return handle to {@link Camera} that was opened
*/
public static Camera open(int cameraId) {
@ -40,9 +43,9 @@ public final class OpenCameraInterface {
Log.w(TAG, "No cameras!");
return null;
}
boolean explicitRequest = cameraId >= 0;
if (!explicitRequest) {
// Select a camera if no explicit camera requested
int index = 0;
@ -57,7 +60,7 @@ public final class OpenCameraInterface {
cameraId = index;
}
Camera camera;
if (cameraId < numCameras) {
Log.i(TAG, "Opening camera #" + cameraId);
@ -75,14 +78,4 @@ public final class OpenCameraInterface {
return camera;
}
/**
* Opens a rear-facing camera with {@link Camera#open(int)}, if one exists, or opens camera 0.
*
* @return handle to {@link Camera} that was opened
*/
public static Camera open() {
return open(-1);
}
}

View file

@ -190,6 +190,9 @@ final class QRCodeEncoder {
InputStream stream = null;
try {
stream = activity.getContentResolver().openInputStream(uri);
if (stream == null) {
throw new WriterException("Can't open stream for " + uri);
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[2048];
int bytesRead;

View file

@ -69,9 +69,12 @@ public final class HistoryManager {
private static final String[] ID_DETAIL_COL_PROJECTION = { DBHelper.ID_COL, DBHelper.DETAILS_COL };
private final Activity activity;
private final boolean enableHistory;
public HistoryManager(Activity activity) {
this.activity = activity;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
enableHistory = prefs.getBoolean(PreferencesActivity.KEY_ENABLE_HISTORY, true);
}
public boolean hasHistoryItems() {
@ -152,7 +155,7 @@ public final class HistoryManager {
// Do not save this item to the history if the preference is turned off, or the contents are
// considered secure.
if (!activity.getIntent().getBooleanExtra(Intents.Scan.SAVE_HISTORY, true) ||
handler.areContentsSecure()) {
handler.areContentsSecure() || !enableHistory) {
return;
}
@ -265,13 +268,14 @@ public final class HistoryManager {
* and double-quoted. Double-quotes within values are escaped with a sequence of two
* double-quotes. The fields output are:</p>
*
* <ul>
* <ol>
* <li>Raw text</li>
* <li>Display text</li>
* <li>Format (e.g. QR_CODE)</li>
* <li>Timestamp</li>
* <li>Unix timestamp (milliseconds since the epoch)</li>
* <li>Formatted version of timestamp</li>
* </ul>
* <li>Supplemental info (e.g. price info for a product barcode)</li>
* </ol>
*/
CharSequence buildHistory() {
SQLiteOpenHelper helper = new DBHelper(activity);

View file

@ -146,7 +146,7 @@ public final class AddressBookResultHandler extends ResultHandler {
dialPhone(addressResult.getPhoneNumbers()[0]);
break;
case 3:
sendEmail(addressResult.getEmails()[0], null, null);
sendEmail(addressResult.getEmails(), null, null, null, null);
break;
default:
break;

View file

@ -52,15 +52,14 @@ public final class EmailAddressResultHandler extends ResultHandler {
EmailAddressParsedResult emailResult = (EmailAddressParsedResult) getResult();
switch (index) {
case 0:
sendEmailFromUri(emailResult.getMailtoURI(),
emailResult.getEmailAddress(),
emailResult.getSubject(),
emailResult.getBody());
sendEmail(emailResult.getTos(),
emailResult.getCCs(),
emailResult.getBCCs(),
emailResult.getSubject(),
emailResult.getBody());
break;
case 1:
String[] addresses = new String[1];
addresses[0] = emailResult.getEmailAddress();
addEmailOnlyContact(addresses, null);
addEmailOnlyContact(emailResult.getTos(), null);
break;
}
}

View file

@ -30,6 +30,7 @@ import com.google.zxing.client.result.ResultParser;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.ContentValues;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
@ -40,6 +41,7 @@ import android.util.Log;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Locale;
import java.util.ArrayList;
/**
* A base class for the Android-specific barcode handlers. These allow the app to polymorphically
@ -224,27 +226,49 @@ public abstract class ResultHandler {
}
}
// No field for URL, birthday; use notes
StringBuilder aggregatedNotes = new StringBuilder();
ArrayList<ContentValues> data = new ArrayList<>();
if (urls != null) {
for (String url : urls) {
if (url != null && !url.isEmpty()) {
aggregatedNotes.append('\n').append(url);
ContentValues row = new ContentValues(2);
row.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE);
row.put(ContactsContract.CommonDataKinds.Website.URL, url);
data.add(row);
break;
}
}
}
for (String aNote : new String[] { birthday, note }) {
if (aNote != null) {
aggregatedNotes.append('\n').append(aNote);
}
if (birthday != null) {
ContentValues row = new ContentValues(3);
row.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE);
row.put(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY);
row.put(ContactsContract.CommonDataKinds.Event.START_DATE, birthday);
data.add(row);
}
if (nicknames != null) {
for (String nickname : nicknames) {
if (nickname != null && !nickname.isEmpty()) {
aggregatedNotes.append('\n').append(nickname);
ContentValues row = new ContentValues(3);
row.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE);
row.put(ContactsContract.CommonDataKinds.Nickname.TYPE,
ContactsContract.CommonDataKinds.Nickname.TYPE_DEFAULT);
row.put(ContactsContract.CommonDataKinds.Nickname.NAME, nickname);
data.add(row);
break;
}
}
}
if (!data.isEmpty()) {
intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data);
}
StringBuilder aggregatedNotes = new StringBuilder();
if (note != null) {
aggregatedNotes.append('\n').append(note);
}
if (geo != null) {
aggregatedNotes.append('\n').append(geo[0]).append(',').append(geo[1]);
}
@ -293,18 +317,23 @@ public abstract class ResultHandler {
}
final void shareByEmail(String contents) {
sendEmailFromUri("mailto:", null, null, contents);
sendEmail(null, null, null, null, contents);
}
final void sendEmail(String address, String subject, String body) {
sendEmailFromUri("mailto:" + address, address, subject, body);
}
// Use public Intent fields rather than private GMail app fields to specify subject and body.
final void sendEmailFromUri(String uri, String email, String subject, String body) {
Intent intent = new Intent(Intent.ACTION_SEND, Uri.parse(uri));
if (email != null) {
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {email});
final void sendEmail(String[] to,
String[] cc,
String[] bcc,
String subject,
String body) {
Intent intent = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
if (to != null && to.length != 0) {
intent.putExtra(Intent.EXTRA_EMAIL, to);
}
if (cc != null && cc.length != 0) {
intent.putExtra(Intent.EXTRA_CC, cc);
}
if (bcc != null && bcc.length != 0) {
intent.putExtra(Intent.EXTRA_BCC, bcc);
}
putExtra(intent, Intent.EXTRA_SUBJECT, subject);
putExtra(intent, Intent.EXTRA_TEXT, body);
@ -467,19 +496,18 @@ public abstract class ResultHandler {
} catch (UnsupportedEncodingException e) {
// can't happen; UTF-8 is always supported. Continue, I guess, without encoding
}
String url = text;
String url = customProductSearch;
if (rawResult != null) {
// Replace %f but only if it doesn't seem to be a hex escape sequence. This remains
// problematic but avoids the more surprising problem of breaking escapes
url = url.replace("%f(?![0-9a-f])", rawResult.getBarcodeFormat().toString());
url = url.replaceFirst("%f(?![0-9a-f])", rawResult.getBarcodeFormat().toString());
if (url.contains("%t")) {
ParsedResult parsedResultAgain = ResultParser.parseResult(rawResult);
url = url.replace("%t", parsedResultAgain.getType().toString());
}
}
// Replace %s last as it might contain itself %f or %t
url = customProductSearch.replace("%s", url);
return url;
return url.replace("%s", text);
}
}

View file

@ -22,7 +22,7 @@
<uses-permission android:name="android.permission.CAMERA"/>
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="19"/>
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="21"/>
<supports-screens android:xlargeScreens="true"
android:largeScreens="true"

View file

@ -25,17 +25,14 @@
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>android-integration</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>android-core</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>com.google.android</groupId>
@ -46,16 +43,23 @@
<parent>
<groupId>com.google.zxing</groupId>
<artifactId>zxing-parent</artifactId>
<version>3.0.2-SNAPSHOT</version>
<version>3.2.1-SNAPSHOT</version>
</parent>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<groupId>com.simpligility.maven.plugins</groupId>
<artifactId>android-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>

View file

@ -10,7 +10,7 @@
# be complete or up to date. (The "arithmetic" optimization can be
# used if you are only targeting Android 2.0 or later.) Make sure you
# test thoroughly if you go this route.
-optimizations !code/simplification/cast,!field/*,!class/merging/*,!code/allocation/variable,!method/marking/private
-optimizations !code/simplification/cast,!field/*,!class/merging/*,!class/unboxing/enum,!code/allocation/variable,!method/marking/private
-optimizationpasses 5
-allowaccessmodification
-dontpreverify

View file

@ -18,7 +18,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>core</artifactId>
<version>3.0.2-SNAPSHOT</version>
<version>3.2.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
@ -32,7 +32,7 @@
<parent>
<groupId>com.google.zxing</groupId>
<artifactId>zxing-parent</artifactId>
<version>3.0.2-SNAPSHOT</version>
<version>3.2.1-SNAPSHOT</version>
</parent>
<build>

View file

@ -30,8 +30,23 @@ public final class ChecksumException extends ReaderException {
// do nothing
}
public static ChecksumException getChecksumInstance() {
return instance;
private ChecksumException(Throwable cause) {
super(cause);
}
public static ChecksumException getChecksumInstance() {
if (isStackTrace) {
return new ChecksumException();
} else {
return instance;
}
}
public static ChecksumException getChecksumInstance(Throwable cause) {
if (isStackTrace) {
return new ChecksumException(cause);
} else {
return instance;
}
}
}

View file

@ -44,12 +44,19 @@ public enum EncodeHintType {
/**
* Specifies a minimum barcode size (type {@link Dimension}). Only applicable to Data Matrix now.
*
* @deprecated use width/height params in
* {@link com.google.zxing.datamatrix.DataMatrixWriter#encode(String, BarcodeFormat, int, int)}
*/
@Deprecated
MIN_SIZE,
/**
* Specifies a maximum barcode size (type {@link Dimension}). Only applicable to Data Matrix now.
*
* @deprecated without replacement
*/
@Deprecated
MAX_SIZE,
/**

View file

@ -28,11 +28,25 @@ public final class FormatException extends ReaderException {
private static final FormatException instance = new FormatException();
private FormatException() {
// do nothing
}
private FormatException(Throwable cause) {
super(cause);
}
public static FormatException getFormatInstance() {
return instance;
if (isStackTrace) {
return new FormatException();
} else {
return instance;
}
}
public static FormatException getFormatInstance(Throwable cause) {
if (isStackTrace) {
return new FormatException(cause);
} else {
return instance;
}
}
}

View file

@ -25,10 +25,17 @@ package com.google.zxing;
*/
public abstract class ReaderException extends Exception {
// disable stack traces when not running inside test units
protected static final boolean isStackTrace = System.getProperty("surefire.test.class.path") != null;
ReaderException() {
// do nothing
}
ReaderException(Throwable cause) {
super(cause);
}
// Prevent stack traces from being taken
// srowen says: huh, my IDE is saying this is not an override. native methods can't be overridden?
// This, at least, does not hurt. Because we use a singleton pattern here, it doesn't matter anyhow.

View file

@ -71,7 +71,7 @@ public class ResultPoint {
* Orders an array of three ResultPoints in an order [A,B,C] such that AB is less than AC
* and BC is less than AC, and the angle between BC and BA is less than 180 degrees.
*
* @param patterns array of three {@link ResultPoint} to order
* @param patterns array of three {@code ResultPoint} to order
*/
public static void orderBestPatterns(ResultPoint[] patterns) {

View file

@ -229,8 +229,8 @@ public final class Decoder {
try {
ReedSolomonDecoder rsDecoder = new ReedSolomonDecoder(gf);
rsDecoder.decode(dataWords, numECCodewords);
} catch (ReedSolomonException ignored) {
throw FormatException.getFormatInstance();
} catch (ReedSolomonException ex) {
throw FormatException.getFormatInstance(ex);
}
// Now perform the unstuffing operation.

View file

@ -21,24 +21,48 @@ package com.google.zxing.client.result;
*/
public final class EmailAddressParsedResult extends ParsedResult {
private final String emailAddress;
private final String[] tos;
private final String[] ccs;
private final String[] bccs;
private final String subject;
private final String body;
private final String mailtoURI;
EmailAddressParsedResult(String emailAddress,
String subject,
String body,
String mailtoURI) {
super(ParsedResultType.EMAIL_ADDRESS);
this.emailAddress = emailAddress;
this.subject = subject;
this.body = body;
this.mailtoURI = mailtoURI;
EmailAddressParsedResult(String to) {
this(new String[] {to}, null, null, null, null);
}
EmailAddressParsedResult(String[] tos,
String[] ccs,
String[] bccs,
String subject,
String body) {
super(ParsedResultType.EMAIL_ADDRESS);
this.tos = tos;
this.ccs = ccs;
this.bccs = bccs;
this.subject = subject;
this.body = body;
}
/**
* @return first elements of {@link #getTos()} or {@code null} if none
* @deprecated use {@link #getTos()}
*/
@Deprecated
public String getEmailAddress() {
return emailAddress;
return tos == null || tos.length == 0 ? null : tos[0];
}
public String[] getTos() {
return tos;
}
public String[] getCCs() {
return ccs;
}
public String[] getBCCs() {
return bccs;
}
public String getSubject() {
@ -49,14 +73,21 @@ public final class EmailAddressParsedResult extends ParsedResult {
return body;
}
/**
* @return "mailto:"
* @deprecated without replacement
*/
@Deprecated
public String getMailtoURI() {
return mailtoURI;
return "mailto:";
}
@Override
public String getDisplayResult() {
StringBuilder result = new StringBuilder(30);
maybeAppend(emailAddress, result);
maybeAppend(tos, result);
maybeAppend(ccs, result);
maybeAppend(bccs, result);
maybeAppend(subject, result);
maybeAppend(body, result);
return result.toString();

View file

@ -19,6 +19,7 @@ package com.google.zxing.client.result;
import com.google.zxing.Result;
import java.util.Map;
import java.util.regex.Pattern;
/**
* Represents a result that encodes an e-mail address, either as a plain address
@ -28,35 +29,52 @@ import java.util.Map;
*/
public final class EmailAddressResultParser extends ResultParser {
private static final Pattern COMMA = Pattern.compile(",");
@Override
public EmailAddressParsedResult parse(Result result) {
String rawText = getMassagedText(result);
String emailAddress;
if (rawText.startsWith("mailto:") || rawText.startsWith("MAILTO:")) {
// If it starts with mailto:, assume it is definitely trying to be an email address
emailAddress = rawText.substring(7);
int queryStart = emailAddress.indexOf('?');
String hostEmail = rawText.substring(7);
int queryStart = hostEmail.indexOf('?');
if (queryStart >= 0) {
emailAddress = emailAddress.substring(0, queryStart);
hostEmail = hostEmail.substring(0, queryStart);
}
hostEmail = urlDecode(hostEmail);
String[] tos = null;
if (!hostEmail.isEmpty()) {
tos = COMMA.split(hostEmail);
}
emailAddress = urlDecode(emailAddress);
Map<String,String> nameValues = parseNameValuePairs(rawText);
String[] ccs = null;
String[] bccs = null;
String subject = null;
String body = null;
if (nameValues != null) {
if (emailAddress.isEmpty()) {
emailAddress = nameValues.get("to");
if (tos == null) {
String tosString = nameValues.get("to");
if (tosString != null) {
tos = COMMA.split(tosString);
}
}
String ccString = nameValues.get("cc");
if (ccString != null) {
ccs = COMMA.split(ccString);
}
String bccString = nameValues.get("bcc");
if (bccString != null) {
bccs = COMMA.split(bccString);
}
subject = nameValues.get("subject");
body = nameValues.get("body");
}
return new EmailAddressParsedResult(emailAddress, subject, body, rawText);
return new EmailAddressParsedResult(tos, ccs, bccs, subject, body);
} else {
if (!EmailDoCoMoResultParser.isBasicallyValidEmailAddress(rawText)) {
return null;
}
emailAddress = rawText;
return new EmailAddressParsedResult(emailAddress, null, null, "mailto:" + emailAddress);
return new EmailAddressParsedResult(rawText);
}
}

View file

@ -37,17 +37,18 @@ public final class EmailDoCoMoResultParser extends AbstractDoCoMoResultParser {
if (!rawText.startsWith("MATMSG:")) {
return null;
}
String[] rawTo = matchDoCoMoPrefixedField("TO:", rawText, true);
if (rawTo == null) {
String[] tos = matchDoCoMoPrefixedField("TO:", rawText, true);
if (tos == null) {
return null;
}
String to = rawTo[0];
if (!isBasicallyValidEmailAddress(to)) {
return null;
for (String to : tos) {
if (!isBasicallyValidEmailAddress(to)) {
return null;
}
}
String subject = matchSingleDoCoMoPrefixedField("SUB:", rawText, false);
String body = matchSingleDoCoMoPrefixedField("BODY:", rawText, false);
return new EmailAddressParsedResult(to, subject, body, "mailto:" + to);
return new EmailAddressParsedResult(tos, null, null, subject, body);
}
/**

View file

@ -116,7 +116,7 @@ public abstract class ResultParser {
}
protected static String unescapeBackslash(String escaped) {
int backslash = escaped.indexOf((int) '\\');
int backslash = escaped.indexOf('\\');
if (backslash < 0) {
return escaped;
}
@ -208,13 +208,13 @@ public abstract class ResultParser {
int start = i; // Found the start of a match here
boolean more = true;
while (more) {
i = rawText.indexOf((int) endChar, i);
i = rawText.indexOf(endChar, i);
if (i < 0) {
// No terminating end character? uh, done. Set i such that loop terminates and break
i = rawText.length();
more = false;
} else if (rawText.charAt(i - 1) == '\\') {
// semicolon was escaped so continue
} else if (countPrecedingBackslashes(rawText, i) % 2 != 0) {
// semicolon was escaped (odd count of preceding backslashes) so continue
i++;
} else {
// found a match
@ -239,6 +239,18 @@ public abstract class ResultParser {
return matches.toArray(new String[matches.size()]);
}
private static int countPrecedingBackslashes(CharSequence s, int pos) {
int count = 0;
for (int i = pos - 1; i >= 0; i--) {
if (s.charAt(i) == '\\') {
count++;
} else {
break;
}
}
return count;
}
static String matchSinglePrefixedField(String prefix, String rawText, char endChar, boolean trim) {
String[] matches = matchPrefixedField(prefix, rawText, endChar, trim);
return matches == null ? null : matches[0];

View file

@ -45,7 +45,10 @@ public final class SMTPResultParser extends ResultParser {
subject = subject.substring(0, colon);
}
}
String mailtoURI = "mailto:" + emailAddress;
return new EmailAddressParsedResult(emailAddress, subject, body, mailtoURI);
return new EmailAddressParsedResult(new String[] {emailAddress},
null,
null,
subject,
body);
}
}

View file

@ -28,7 +28,8 @@ import java.util.regex.Pattern;
*/
public final class URIResultParser extends ResultParser {
private static final Pattern URL_WITH_PROTOCOL_PATTERN = Pattern.compile("[a-zA-Z0-9]{2,}:");
// See http://www.ietf.org/rfc/rfc2396.txt
private static final Pattern URL_WITH_PROTOCOL_PATTERN = Pattern.compile("[a-zA-Z][a-zA-Z0-9+-.]+:");
private static final Pattern URL_WITHOUT_PROTOCOL_PATTERN = Pattern.compile(
"([a-zA-Z0-9\\-]+\\.)+[a-zA-Z]{2,}" + // host name elements
"(:\\d{1,5})?" + // maybe port

View file

@ -62,6 +62,66 @@ public final class BitMatrix implements Cloneable {
this.bits = bits;
}
public static BitMatrix parse(String stringRepresentation, String setString, String unsetString) {
if (stringRepresentation == null) {
throw new IllegalArgumentException();
}
boolean[] bits = new boolean[stringRepresentation.length()];
int bitsPos = 0;
int rowStartPos = 0;
int rowLength = -1;
int nRows = 0;
int pos = 0;
while (pos < stringRepresentation.length()) {
if (stringRepresentation.charAt(pos) == '\n' ||
stringRepresentation.charAt(pos) == '\r') {
if (bitsPos > rowStartPos) {
if(rowLength == -1) {
rowLength = bitsPos - rowStartPos;
}
else if (bitsPos - rowStartPos != rowLength) {
throw new IllegalArgumentException("row lengths do not match");
}
rowStartPos = bitsPos;
nRows++;
}
pos++;
}
else if (stringRepresentation.substring(pos, pos + setString.length()).equals(setString)) {
pos += setString.length();
bits[bitsPos] = true;
bitsPos++;
}
else if (stringRepresentation.substring(pos, pos + unsetString.length()).equals(unsetString)) {
pos += unsetString.length();
bits[bitsPos] = false;
bitsPos++;
} else {
throw new IllegalArgumentException(
"illegal character encountered: " + stringRepresentation.substring(pos));
}
}
// no EOL at end?
if (bitsPos > rowStartPos) {
if(rowLength == -1) {
rowLength = bitsPos - rowStartPos;
} else if (bitsPos - rowStartPos != rowLength) {
throw new IllegalArgumentException("row lengths do not match");
}
nRows++;
}
BitMatrix matrix = new BitMatrix(rowLength, nRows);
for (int i = 0; i < bitsPos; i++) {
if (bits[i]) {
matrix.set(i % rowLength, i / rowLength);
}
}
return matrix;
}
/**
* <p>Gets the requested bit, where true means black.</p>
*
@ -85,6 +145,11 @@ public final class BitMatrix implements Cloneable {
bits[offset] |= 1 << (x & 0x1f);
}
public void unset(int x, int y) {
int offset = y * rowSize + (x / 32);
bits[offset] &= ~(1 << (x & 0x1f));
}
/**
* <p>Flips the given bit.</p>
*
@ -96,6 +161,27 @@ public final class BitMatrix implements Cloneable {
bits[offset] ^= 1 << (x & 0x1f);
}
/**
* Exclusive-or (XOR): Flip the bit in this {@code BitMatrix} if the corresponding
* mask bit is set.
*
* @param mask XOR mask
*/
public void xor(BitMatrix mask) {
if (width != mask.getWidth() || height != mask.getHeight()
|| rowSize != mask.getRowSize()) {
throw new IllegalArgumentException("input matrix dimensions do not match");
}
BitArray rowArray = new BitArray(width / 32 + 1);
for (int y = 0; y < height; y++) {
int offset = y * rowSize;
int[] row = mask.getRow(y, rowArray).getBitArray();
for (int x = 0; x < rowSize; x++) {
bits[offset + x] ^= row[x];
}
}
}
/**
* Clears all bits (sets to false).
*/
@ -295,6 +381,13 @@ public final class BitMatrix implements Cloneable {
return height;
}
/**
* @return The row size of the matrix
*/
public int getRowSize() {
return rowSize;
}
@Override
public boolean equals(Object o) {
if (!(o instanceof BitMatrix)) {
@ -317,12 +410,24 @@ public final class BitMatrix implements Cloneable {
@Override
public String toString() {
return toString("X ", " ");
}
public String toString(String setString, String unsetString) {
return toString(setString, unsetString, "\n");
}
/**
* @deprecated call {@link #toString(String,String)} only, which uses \n line separator always
*/
@Deprecated
public String toString(String setString, String unsetString, String lineSeparator) {
StringBuilder result = new StringBuilder(height * (width + 1));
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
result.append(get(x, y) ? "X " : " ");
result.append(get(x, y) ? setString : unsetString);
}
result.append('\n');
result.append(lineSeparator);
}
return result.toString();
}

View file

@ -95,7 +95,7 @@ public enum CharacterSetECI {
/**
* @param value character set ECI value
* @return {@link CharacterSetECI} representing ECI of given value, or null if it is legal but
* @return {@code CharacterSetECI} representing ECI of given value, or null if it is legal but
* unsupported
* @throws FormatException if ECI value is invalid
*/

View file

@ -60,17 +60,19 @@ public final class DataMatrixWriter implements Writer {
// Try to get force shape & min / max size
SymbolShapeHint shape = SymbolShapeHint.FORCE_NONE;
Dimension minSize = null;
Dimension minSize = new Dimension(width, height);
Dimension maxSize = null;
if (hints != null) {
SymbolShapeHint requestedShape = (SymbolShapeHint) hints.get(EncodeHintType.DATA_MATRIX_SHAPE);
if (requestedShape != null) {
shape = requestedShape;
}
@SuppressWarnings("deprecation")
Dimension requestedMinSize = (Dimension) hints.get(EncodeHintType.MIN_SIZE);
if (requestedMinSize != null) {
minSize = requestedMinSize;
}
@SuppressWarnings("deprecation")
Dimension requestedMaxSize = (Dimension) hints.get(EncodeHintType.MAX_SIZE);
if (requestedMaxSize != null) {
maxSize = requestedMaxSize;

View file

@ -94,8 +94,9 @@ final class DataBlock {
int max = result[0].codewords.length;
for (int i = longerBlocksNumDataCodewords; i < max; i++) {
for (int j = 0; j < numResultBlocks; j++) {
int iOffset = specialVersion && j > 7 ? i - 1 : i;
result[j].codewords[iOffset] = rawCodewords[rawCodewordsOffset++];
int jOffset = specialVersion ? (j + 8) % numResultBlocks : j;
int iOffset = specialVersion && jOffset > 7 ? i - 1 : i;
result[jOffset].codewords[iOffset] = rawCodewords[rawCodewordsOffset++];
}
}

View file

@ -71,6 +71,9 @@ final class DecodedBitStreamParser {
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
};
// Shift 2 for Text is the same encoding as C40
private static final char[] TEXT_SHIFT2_SET_CHARS = C40_SHIFT2_SET_CHARS;
private static final char[] TEXT_SHIFT3_SET_CHARS = {
'`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', (char) 127
@ -139,7 +142,7 @@ final class DecodedBitStreamParser {
return Mode.PAD_ENCODE;
} else if (oneByte <= 229) { // 2-digit data 00-99 (Numeric Value + 130)
int value = oneByte - 130;
if (value < 10) { // padd with '0' for single digit values
if (value < 10) { // pad with '0' for single digit values
result.append('0');
}
result.append(value);
@ -319,13 +322,13 @@ final class DecodedBitStreamParser {
break;
case 2:
// Shift 2 for Text is the same encoding as C40
if (cValue < C40_SHIFT2_SET_CHARS.length) {
char c40char = C40_SHIFT2_SET_CHARS[cValue];
if (cValue < TEXT_SHIFT2_SET_CHARS.length) {
char textChar = TEXT_SHIFT2_SET_CHARS[cValue];
if (upperShift) {
result.append((char) (c40char + 128));
result.append((char) (textChar + 128));
upperShift = false;
} else {
result.append(c40char);
result.append(textChar);
}
} else if (cValue == 27) { // FNC1
result.append((char) 29); // translate as ASCII 29

View file

@ -72,16 +72,12 @@ final class X12Encoder extends C40Encoder {
context.updateSymbolInfo();
int available = context.getSymbolInfo().getDataCapacity() - context.getCodewordCount();
int count = buffer.length();
if (count == 2) {
context.pos -= count;
if (context.getRemainingCharacters() > 1 || available > 1 ||
context.getRemainingCharacters() != available) {
context.writeCodeword(HighLevelEncoder.X12_UNLATCH);
context.pos -= 2;
context.signalEncoderChange(HighLevelEncoder.ASCII_ENCODATION);
} else if (count == 1) {
context.pos--;
if (available > 1) {
context.writeCodeword(HighLevelEncoder.X12_UNLATCH);
}
//NOP - No unlatch necessary
}
if (context.getNewEncoding() < 0) {
context.signalEncoderChange(HighLevelEncoder.ASCII_ENCODATION);
}
}

View file

@ -23,6 +23,7 @@ import com.google.zxing.FormatException;
import com.google.zxing.NotFoundException;
import com.google.zxing.Reader;
import com.google.zxing.Result;
import com.google.zxing.ResultPoint;
import java.util.Map;
@ -58,30 +59,33 @@ public final class ByQuadrantReader implements Reader {
int halfWidth = width / 2;
int halfHeight = height / 2;
BinaryBitmap topLeft = image.crop(0, 0, halfWidth, halfHeight);
try {
return delegate.decode(topLeft, hints);
// No need to call makeAbsolute as results will be relative to original top left here
return delegate.decode(image.crop(0, 0, halfWidth, halfHeight), hints);
} catch (NotFoundException re) {
// continue
}
BinaryBitmap topRight = image.crop(halfWidth, 0, halfWidth, halfHeight);
try {
return delegate.decode(topRight, hints);
Result result = delegate.decode(image.crop(halfWidth, 0, halfWidth, halfHeight), hints);
makeAbsolute(result.getResultPoints(), halfWidth, 0);
return result;
} catch (NotFoundException re) {
// continue
}
BinaryBitmap bottomLeft = image.crop(0, halfHeight, halfWidth, halfHeight);
try {
return delegate.decode(bottomLeft, hints);
Result result = delegate.decode(image.crop(0, halfHeight, halfWidth, halfHeight), hints);
makeAbsolute(result.getResultPoints(), 0, halfHeight);
return result;
} catch (NotFoundException re) {
// continue
}
BinaryBitmap bottomRight = image.crop(halfWidth, halfHeight, halfWidth, halfHeight);
try {
return delegate.decode(bottomRight, hints);
Result result = delegate.decode(image.crop(halfWidth, halfHeight, halfWidth, halfHeight), hints);
makeAbsolute(result.getResultPoints(), halfWidth, halfHeight);
return result;
} catch (NotFoundException re) {
// continue
}
@ -89,7 +93,9 @@ public final class ByQuadrantReader implements Reader {
int quarterWidth = halfWidth / 2;
int quarterHeight = halfHeight / 2;
BinaryBitmap center = image.crop(quarterWidth, quarterHeight, halfWidth, halfHeight);
return delegate.decode(center, hints);
Result result = delegate.decode(center, hints);
makeAbsolute(result.getResultPoints(), quarterWidth, quarterHeight);
return result;
}
@Override
@ -97,4 +103,13 @@ public final class ByQuadrantReader implements Reader {
delegate.reset();
}
private static void makeAbsolute(ResultPoint[] points, int leftOffset, int topOffset) {
if (points != null) {
for (int i = 0; i < points.length; i++) {
ResultPoint relative = points[i];
points[i] = new ResultPoint(relative.getX() + leftOffset, relative.getY() + topOffset);
}
}
}
}

Some files were not shown because too many files have changed in this diff Show more